ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

โœ… grep ํŒจํ„ด๊ฒ€์ƒ‰

grep ๋ช…๋ น์€ ํŒŒ์ผ ๋‚ด์—์„œ ์ง€์ •ํ•œ ํŒจํ„ด์ด๋‚˜ ๋ฌธ์ž์—ด์„ ์ฐพ์€ ํ›„ ๊ทธ ํŒจํ„ด์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ํ–‰์„ ํ‘œ์ค€ ์ถœ๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

โœ… grep ๋ช…๋ น์–ด ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

grep (1)[-์˜ต์…˜] (2)ํŒจํ„ด (3)ํŒŒ์ผ๋ช…

โœ… grep ์˜ต์…˜

-c: ํŒŒ์ผ ๋‹น ํŒจํ„ด์ด ์ผ์น˜ํ•˜๋Š” ๋ผ์ธ์˜ ๊ฐฏ์ˆ˜ ์ถœ๋ ฅ
-i: ๋น„๊ต์‹œ ๋Œ€/์†Œ๋ฌธ์ž ๊ตฌ๋ณ„ ์•ˆํ•จ
-v: ์ง€์ •ํ•œ ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ผ์ธ ์„ ํƒ
-n: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ถœ๋ ฅ ๋ผ์ธ ์•ž์— ๋ผ์ธ ๋ฒˆํ˜ธ ์ถœ๋ ฅ
-l: ํŒจํ„ด์ด ํฌํ•จ๋œ ํŒŒ์ผ์˜ ์ด๋ฆ„๋งŒ ํ‘œ์‹œ
-w: ํŒจํ„ด์ด ์ „์ฒด ๋‹จ์–ด(word)์™€ ์ผ์น˜ํ•˜๋Š” ๋ผ์ธ๋งŒ ์ถœ๋ ฅ
-m: ์ตœ๋Œ€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๊ฐฏ์ˆ˜ ์ œํ•œ
-H: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ถœ๋ ฅ ๋ผ์ธ ์•ž์— ํŒŒ์ผ ์ด๋ฆ„ ํ‘œ์‹œ

-E: PATTERN์„ ํ™•์žฅ ์ •๊ทœ ํ‘œํ˜„์‹(Extended RegEx)์œผ๋กœ ํ•ด์„
-F: PATTERN์„ ์ •๊ทœ ํ‘œํ˜„์‹(RegEx)์ด ์•„๋‹Œ ์ผ๋ฐ˜ ๋ฌธ์ž์—ด๋กœ ํ•ด์„
-G: PATTERN์„ ๊ธฐ๋ณธ ์ •๊ทœ ํ‘œํ˜„์‹(Basic RegEx)์œผ๋กœ ํ•ด์„
-P: PATTERN์„ Perl ์ •๊ทœ ํ‘œํ˜„์‹(Perl RegEx)์œผ๋กœ ํ•ด์„
-e: ๋งค์นญ์„ ์œ„ํ•œ PATTERN ์ „๋‹ฌ
-f: ํŒŒ์ผ์— ๊ธฐ๋ก๋œ ๋‚ด์šฉ์„ PATTERN์œผ๋กœ ์‚ฌ์šฉ
-x: ๋ผ์ธ(line) ๋‹จ์œ„๋กœ ๋งค์นญ
-z: ๋ผ์ธ์„ newline(\n)์ด ์•„๋‹Œ NULL(\0)๋กœ ๊ตฌ๋ถ„
-b: ํŒจํ„ด์ด ๋งค์น˜๋œ ๊ฐ ๋ผ์ธ(-o ์‚ฌ์šฉ ์‹œ ๋ฌธ์ž์—ด)์˜ ๋ฐ”์ดํŠธ ์˜ต์…‹ ์ถœ๋ ฅ
-h: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ถœ๋ ฅ ์‹œ, ํŒŒ์ผ ์ด๋ฆ„ ๋ฌด์‹œ
-o: ๋งค์น˜๋˜๋Š” ๋ฌธ์ž์—ด๋งŒ ํ‘œ์‹œ
-q: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ถœ๋ ฅํ•˜์ง€ ์•Š์Œ
-a: ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ํ…์ŠคํŠธ ํŒŒ์ผ์ฒ˜๋Ÿผ ์ฒ˜๋ฆฌ
-I: ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์€ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š์Œ
-d: ๋””๋ ‰ํ† ๋ฆฌ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ์ง€์ • (read, recurse, skip)
-D: ์žฅ์น˜ ํŒŒ์ผ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ์ง€์ • (read, skip)
-r: ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ํƒ์ƒ‰
-R: ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋ชจ๋“  ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ํƒ์ƒ‰
-L: PATTERN์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ ์ด๋ฆ„๋งŒ ํ‘œ์‹œ

โœ… grep ์‚ฌ์šฉ ์˜ˆ

# noname.log ๋ผ๋Š” ํŒŒ์ผ๋‚ด์—์„œ '๋งฅ๋ถ'์ด๋ผ๋Š” ํŒจํ„ด์ด ๋“ค์–ด๊ฐ„ ๋ฌธ์ž์—ด๊ณผ ํ–‰๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅ (-n ํ–‰๋ฒˆํ˜ธ)
$grep -n '๋งฅ๋ถ' noname.log

# ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์—์„œ '๋งฅ๋ถ'์ด๋ผ๋Š” ํŒจํ„ด์ด ๋“ค์–ด๊ฐ„ ํŒŒ์ผ ์ด๋ฆ„ ์ถœ๋ ฅ
$grep -l '๋งฅ๋ถ' ./*

# ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์—์„œ '๋งฅ๋ถ'์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋ช‡๋ฒˆ์ด ๋“ค์–ด๊ฐ„์ง€ ๊ฐฏ์ˆ˜ ์ถœ๋ ฅ
$grep -c '๋งฅ๋ถ' ./*

# ํ—Œ๋Œ€ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์—์„œ '๋งฅ๋ถ'์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ์•„๋ž˜์ค„ 5์ค„ ์ถœ๋ ฅ
$grep -A 5 '๋งฅ๋ถ' ./*

# ํ—Œ๋Œ€ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์—์„œ '๋งฅ๋ถ'์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ์œ„์ค„ 5์ค„ ์ถœ๋ ฅ
$grep -B 5 '๋งฅ๋ถ' ./*

# ํ—Œ๋Œ€ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์—์„œ '๋งฅ๋ถ'์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ์œ„์•„๋ž˜์ค„ 5์ค„ ์ถœ๋ ฅ
$grep -C 5 '๋งฅ๋ถ' ./*

# ์—ฌ๋Ÿฌ๋‹จ์–ด ๋™์‹œ ๊ฒ€์ƒ‰
# ๋งฅ๋ถ ๋˜๋Š” ๋…ธํŠธ๋ถ์ด ํฌํ•จ๋œ ๋‹จ์–ด ๊ฒ€์ƒ‰
$grep "๋งฅ๋ถ\|๋…ธํŠธ๋ถ" ./*

# -E ์˜ต์…˜์„ ์ฃผ๋ฉด (\)๋Ÿฌ์‹œ ์•ˆ ๋ถ™์—ฌ๋„ ๋จ, ๋งฅ๋ถ ๋˜๋Š” ๋…ธํŠธ๋ถ์ด ํฌํ•จ๋œ ๋‹จ์–ด ๊ฒ€์ƒ‰
$grep -E "๋งฅ๋ถ|๋…ธํŠธ๋ถ" ./*

# ํ–‰๋ฒˆํ˜ธ๊นŒ์ง€ ์ฐ๊ณ  ์‹ถ์œผ๋ฉด
$grep -n -E "๋งฅ๋ถ|๋…ธํŠธ๋ถ" ./*

โœ… grep ํŒจํ„ด ์ •๊ทœ ํ‘œํ˜„์‹

# ^ ๋ผ์ธ์˜ ์‹œ์ž‘, ํŒŒ์ผ์—์„œ g๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ผ์ธ์„ ์ฐพ๋Š”๋‹ค
$grep '^g' ํŒŒ์ผ๋ช…

# $ ๋ผ์ธ์˜ ๋, ํŒŒ์ผ์—์„œ google๋กœ ๋๋‚˜๋Š” ๋ผ์ธ์„ ์ฐพ๋Š”๋‹ค
$grep 'google$' ํŒŒ์ผ๋ช…

# g....e g๋กœ ์‹œ์ž‘ํ•˜๊ณ  e๋กœ ๋๋‚˜๋Š” 6์ž๋ฆฌ ๋‹จ์–ด๋ฅผ ์ฐพ๋Š”๋‹ค
$grep 'g....e' ํŒŒ์ผ๋ช…
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/12   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ
๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (80)
๐Ÿ“บ Develop (0)
๐ŸŒ‹ Error Fixed (5)
๐Ÿ— Tool (5)
๐Ÿ’ป MacBook M1 (15)
๐Ÿ“ฆ ETC (1)

์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค.