15%

Alexhost исполняСт ваши ТСлания

ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ опрос ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ·Ρ‹

03.01.2025

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ grep для поиска ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π°Ρ…

Команда grep – ΠΎΠ΄Π½Π° ΠΈΠ· самых ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ Π² систСмах Π½Π° Π±Π°Π·Π΅ Unix ΠΈ Linux. Она позволяСт ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠ»ΠΈ тСкст Π² Ρ„Π°ΠΉΠ»Π°Ρ…, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ инструмСнтом для систСмных администраторов, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ всСх, ΠΊΡ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ с большими объСмами тСкстовых Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π΄Π΅Ρ‚ Π»ΠΈ Ρ€Π΅Ρ‡ΡŒ ΠΎ поискС Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ², ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Π±Π°Π·Π°Ρ…, grep ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ быстро Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим основы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с grep ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ максимум ΠΏΠΎΠ»ΡŒΠ·Ρ‹ ΠΈΠ· этой ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ grep?

grep Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ “Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ” Она ΠΈΡ‰Π΅Ρ‚ Π² Ρ„Π°ΠΉΠ»Π°Ρ… строки, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ эти строки Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. grep особСнно ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ рСгулярныС выраТСния – ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ слоТныС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ символов, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Ρ‹ΠΉ тСкст.

Основной синтаксис

Основной синтаксис ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ grep ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

grep [options] pattern [file...]
  • шаблон: Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΈΠ»ΠΈ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ выполняСтся поиск.
  • Ρ„Π°ΠΉΠ»: Π€Π°ΠΉΠ» ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск.
  • ΠΎΠΏΡ†ΠΈΠΈ: ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ grep.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ‰Π΅Ρ‚ слово “error” Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ log.txt:

grep "error" log.txt

Π­Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ всС строки Π² Ρ„Π°ΠΉΠ»Π΅ log.txt, содСрТащиС слово “error”

Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ grep

Π‘ΠΈΠ»Π° grep Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π΅Π³ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ поиск.

1. Поиск Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ…

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ сразу Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ…, пСрСчисляя ΠΈΡ… послС шаблона:

grep "error" text.txt text1.txt

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ подстановочныС Π·Π½Π°ΠΊΠΈ для поиска Π²ΠΎ всСх Ρ„Π°ΠΉΠ»Π°Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°:

grep "error" *.log

Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΉΡ‚ΠΈ слово “error” Π²ΠΎ всСх Ρ„Π°ΠΉΠ»Π°Ρ… .log Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

2. Поиск с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра (-i)

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ grep чувствитСлСн ΠΊ рСгистру. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСгистр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ -i:

grep -i "error" text.txt

Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ словам “Error”, “ERROR” ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌ рСгистра.

3. РСкурсивный поиск (-r ΠΈΠ»ΠΈ -R)

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ шаблон Π² Ρ„Π°ΠΉΠ»Π°Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ -r (ΠΈΠ»ΠΈ -R) для рСкурсивного поиска:

grep -r "error" /var/logs/

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ слово “error” Π²ΠΎ всСх Ρ„Π°ΠΉΠ»Π°Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /var/logs/ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

4. ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° строк (-n)

ΠžΠΏΡ†ΠΈΡ -n Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² Π²Ρ‹Π²ΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€Π° строк, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для быстрого нахоТдСния Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ шаблона Π² Ρ„Π°ΠΉΠ»Π΅:

grep -n "error" text.txt

Π’ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, какая строка содСрТит совпадСниС, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ здСсь:

25:ошибка ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° Π²ΠΎ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

5. ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ совпадСний (-c)

Если вас интСрСсуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, сколько Ρ€Π°Π· шаблон встрСчаСтся Π² Ρ„Π°ΠΉΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ -c, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ подсчСт совпадСний вмСсто ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… строк:

grep -c "error" text.txt

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡΡ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ “ошибка” появилось Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° Π² Ρ„Π°ΠΉΠ»Π΅ log.txt.

6. Π˜Π½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ совпадСниС (-v)

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ строки, Π½Π΅ содСрТащиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ шаблона, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ -v:

grep -v "error" text.txt

Π­Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ всС строки Π² Ρ„Π°ΠΉΠ»Π΅ log.txt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ содСрТат слово “error”

7. Поиск Ρ†Π΅Π»Ρ‹Ρ… слов (-w)

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹Π΅ слова, Π° Π½Π΅ частичныС совпадСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -w . НапримСр:

grep -w "error" log.txt

Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ слово “error” Π±ΡƒΠ΄Π΅Ρ‚ сопоставлСно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ слово, Π° Π½Π΅ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΡ… слов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ “error123” ΠΈΠ»ΠΈ “myerror”

8. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ (-m)

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство совпадСний, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ -m , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, сколько строк Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 5 совпадСний:

grep -m 5 "error" log.txt

9. Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ совпадСний (–color)

Π§Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³Ρ‡Π΅ Π±Ρ‹Π»ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π³Π΄Π΅ Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ встрСчаСтся совпадСниС, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ подсвСтку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ –color :

grep --color "error" log.txt

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ эмуляторов Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ тСкст Ρ†Π²Π΅Ρ‚ΠΎΠΌ.

ИспользованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² grep

Одной ΠΈΠ· самых ΠΌΠΎΡ‰Π½Ρ‹Ρ… возмоТностСй grep являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (regex), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, Π° Π½Π΅ фиксированныС строки.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ рСгулярныС выраТСния

Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² grep:

  • Поиск строк, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ шаблона:
    grep "^error" log.txt

    ΠšΠ°Ρ€Π΅Ρ‚ΠΊΠ° (^) соотвСтствуСт Π½Π°Ρ‡Π°Π»Ρƒ строки, поэтому Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с “error”

  • Поиск строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ шаблоном:
    grep "error$" log.txt

    Π—Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°Ρ€Π° ($) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ† строки, поэтому Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ строки, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° “error”

  • Поиск строк, содСрТащих Ρ†ΠΈΡ„Ρ€Ρ‹:
    grep "[0-9]" log.txt

    Π¨Π°Π±Π»ΠΎΠ½ [0-9] соотвСтствуСт любой Ρ†ΠΈΡ„Ρ€Π΅, поэтому ΠΎΠ½ Π½Π°ΠΉΠ΄Π΅Ρ‚ строки, содСрТащиС числа.

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ рСгулярныС выраТСния

Для Π±ΠΎΠ»Π΅Π΅ слоТного сопоставлСния шаблонов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -E, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ рСгулярныС выраТСния:

grep -E "error|failure" log.txt

Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΉΡ‚ΠΈ строки, содСрТащиС Π»ΠΈΠ±ΠΎ “error”, Π»ΠΈΠ±ΠΎ “failure”. Π‘ΠΈΠΌΠ²ΠΎΠ» | прСдставляСт собой “Π˜Π›Π˜” Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… рСгулярных выраТСниях.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

  • * (ноль ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ)
  • (ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ)
  • . (соотвСтствуСт Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΌΡƒ символу)

НапримСр, для поиска строк, содСрТащих любоС слово, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π΅ΡΡ с “err” ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ΡΡ Π»ΡŽΠ±Ρ‹ΠΌΠΈ символами послС Π½Π΅Π³ΠΎ:

grep -E "err.*" log.txt

Поиск сТатых Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ zgrep

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ сТатых Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,.gz ), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ zgrep, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ grep, Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сТатыС Ρ„Π°ΠΉΠ»Ρ‹:

zgrep "error" log.gz

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ поиск “error” Π² Ρ„Π°ΠΉΠ»Π΅ log.gz, Π½Π΅ трСбуя распаковки Ρ„Π°ΠΉΠ»Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ grep с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ grep с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€ΡƒΠ± (|) для создания ΠΌΠΎΡ‰Π½Ρ‹Ρ… поисковых процСссов. НапримСр:

  • Поиск Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ процСссы, содСрТащиС слово “bash”, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:
    ps aux | grep "bash"
  • Поиск Π² Ρ„Π°ΠΉΠ»Π΅ ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈ подсчСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… совпадСний:
    grep "error" log.txt | sort | uniq -c

    Π­Ρ‚ΠΎ отсортируСт Π²Ρ‹Π²ΠΎΠ΄ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… строк ΠΈ подсчитаСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ вхоТдСния.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Команда grep – это нСвСроятно ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ быстро ΠΈ эффСктивно ΠΈΡΠΊΠ°Ρ‚ΡŒ тСкст ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π² Ρ„Π°ΠΉΠ»Π°Ρ…. АнализируСтС Π»ΠΈ Π²Ρ‹ ΠΆΡƒΡ€Π½Π°Π»Ρ‹, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΈΡ‰Π΅Ρ‚Π΅ ΠΊΠΎΠ΄, Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ grep ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΈ силы. Благодаря возмоТностям поиска Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра, рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ рСкурсивного поиска ΠΏΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ grep достаточно унивСрсалСн, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ практичСски с любой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΏΠΎ поиску тСкста, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ поставитС.

ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡ grep с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΅Π³ΠΎ многочислСнныС возмоТности, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС ΠΈ эффСктивныС поисковыС запросы, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ инструмСнтом Π² любой систСмС Π½Π° Π±Π°Π·Π΅ Linux ΠΈΠ»ΠΈ Unix.

15%

Alexhost исполняСт ваши ТСлания

ΠŸΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ опрос ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ·Ρ‹