15%

БпСстСтС 15% ΠΎΡ‚ всички услуги Π·Π° хостинг

ВСствайтС умСнията си ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Ρ‚Π΅ ΠΎΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° всСки хостинг ΠΏΠ»Π°Π½

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄:

Skills
Π—Π° Π½Π°Ρ‡Π°Π»ΠΎ
03.01.2025

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° grep Π·Π° Π½Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° информация във Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° grep Π΅ Π΅Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-ΠΌΠΎΡ‰Π½ΠΈΡ‚Π΅ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π² Unix ΠΈ Linux-Π±Π°Π·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ систСми. Вя Π²ΠΈ позволява Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ»ΠΈ тСкст във Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ я ΠΏΡ€Π°Π²ΠΈ основСн инструмСнт Π·Π° систСмни администратори, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΈ всички, ΠΊΠΎΠΈΡ‚ΠΎ работят с Π³ΠΎΠ»Π΅ΠΌΠΈ количСства тСкстови Π΄Π°Π½Π½ΠΈ. НСзависимо Π΄Π°Π»ΠΈ Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Π² Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π±Π°Π·ΠΈ, grep ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π±ΡŠΡ€Π·ΠΎ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° информация. Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ основитС Π½Π° grep ΠΈ някои ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ максимума ΠΎΡ‚ Ρ‚Π°Π·ΠΈ унивСрсална ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Какво прСдставлява grep?

grep Π΅ ΡΡŠΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΡ‚ “Global Regular Expression Print” (Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚Π²Π°Π½Π΅ Π½Π° рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ) Вя Ρ‚ΡŠΡ€ΡΠΈ във Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ отговарят Π½Π° Π΄Π°Π΄Π΅Π½ шаблон, ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚Π²Π° Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. grep Π΅ особСно ΠΏΠΎΠ»Π΅Π·Π½Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са шаблони, позволяващи Π²ΠΈ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ слоТни ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΎΡ‚ символи, Π° Π½Π΅ само Π±ΡƒΠΊΠ²Π°Π»Π΅Π½ тСкст.

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

ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ синтаксис Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° grep Π΅:

grep [options] pattern [file...]
  • pattern: Π‘Ρ‚Ρ€ΠΈΠ½Π³ΡŠΡ‚ ΠΈΠ»ΠΈ рСгулярният ΠΈΠ·Ρ€Π°Π·, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅.
  • Ρ„Π°ΠΉΠ»: Π€Π°ΠΉΠ»ΡŠΡ‚ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, Π² ΠΊΠΎΠΈΡ‚ΠΎ искатС Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅.
  • ΠΎΠΏΡ†ΠΈΠΈ: ΠžΠΏΡ†ΠΈΠΈ: ΠΠ΅Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ Ρ„Π»Π°Π³ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ промСнят ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° grep.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅

Π•Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ прост ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚ΡŠΡ€ΡΠΈ Π΄ΡƒΠΌΠ°Ρ‚Π° “Π³Ρ€Π΅ΡˆΠΊΠ°” във Ρ„Π°ΠΉΠ», Π½Π°Ρ€Π΅Ρ‡Π΅Π½ 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, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π΄ΡƒΠΌΠ°Ρ‚Π° “Π³Ρ€Π΅ΡˆΠΊΠ°”

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

    ΠšΠ°Ρ€Π΅Ρ‚Π°Ρ‚Π° (^) съвпада с Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ€Π΅Π΄Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‰Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ с “Π³Ρ€Π΅ΡˆΠΊΠ°”

  • Π’ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ шаблон:
    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%

БпСстСтС 15% ΠΎΡ‚ всички услуги Π·Π° хостинг

ВСствайтС умСнията си ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Ρ‚Π΅ ΠΎΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° всСки хостинг ΠΏΠ»Π°Π½

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄:

Skills
Π—Π° Π½Π°Ρ‡Π°Π»ΠΎ