GNU/Linux >> Znalost Linux >  >> Linux

14 Příklady příkazů Grep v Linuxu

Grep je nástroj příkazového řádku v systémech Linux a Unix, který se používá k tisku řádků ze souboru po shodě řetězců nebo slov. grep je zkratka pro globální tisk regulárních výrazů, lze jej použít k vyhledávání řetězců z jednoho nebo více souborů na základě vzoru. Vzor může být jeden znak, skupina znaků, jedno slovo nebo věta.

Když provedeme příkaz grep se zadaným řetězcem, pokud je shodný, zobrazí řádek souboru obsahujícího řetězec beze změny obsahu existujícího souboru.

Syntaxe příkazu Grep:

$ grep   

V tomto tutoriálu probereme 14 užitečných příkladů příkazů linux grep , pojďme se ponořit do příkladů.

Příklad 1) Vyhledejte vzor nebo slovo v souboru

Když spustíme příkaz grep následovaný vyhledávacím řetězcem nebo vzorem, vytiskne odpovídající řádek souboru. Příklad je uveden níže.

Vyhledejte slovo „linuxtechi“ v souboru /etc/passwd

[e-mail chráněný]:~# grep linuxtechi /etc/passwdlinuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash[e-mail chráněný]:~#

Příklad 2) Vyhledejte vzor ve více souborech

Chcete-li hledat slovo „linuxtechi“ ve více souborech, jako je /etc/passwd, /etc/shadow a /etc/gshadow, spusťte

[e-mail chráněný]:~# grep linuxtechi /etc/passwd /etc/shadow /etc/gshadow/etc/passwd:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/ bash/etc/shadow:linuxtechi:$6$DdgXjxlM$4flz4JRvefvKp0DG6re:16550:0:99999:7:::\/etc/gshadow:adm:*::syslog,linuxtechi/etc/gshadow:clindromxtech:*::etc/gshadow:sudo:*::linuxtechi/etc/gshadow:dip:*::linuxtechi/etc/gshadow:plugdev:*::linuxtechi/etc/gshadow:lpadmin:!::linuxtechi/etc/gshadow:linuxtechi:!::/etc/gshadow:sambashare:!::linuxtechi[e-mail chráněný]:~#

Příklad 3) Vypište názvy souborů, které obsahují slovo ( grep -l)

Předpokládejme, že chceme vypsat seznam souborů, které obsahují slovo ‚linuxtechi‘ z více souborů, k tomu použijte volbu ‚-l‘ v příkazu grep následovanou slovem (vzor) a soubory.

[chráněno e-mailem]:~# grep -l linuxtechi /etc/passwd /etc/shadow /etc/fstab /etc/mtab/etc/passwd/etc/shadow[chráněno e-mailem]:~#

Příklad 4) Vyhledejte vzor v souboru spolu s přidruženým číslem řádku (grep -n)

Předpokládejme, že chceme řádek seznamu a jeho číslo, které odpovídá vzoru nebo slovu. Použijte volbu ‚-n‘ v příkazu grep, v našem příkladu je vzor ‚linuxtechi‘

[e-mail chráněný]:~# grep -n linuxtechi /etc/passwd39:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash[e-mail chráněný]:~# 

Níže je další příklad, který zobrazuje řádek a jeho číslo po shodě se slovem „root“ v souboru /etc/passwd a /etc/shadow

[e-mail chráněný]:~# grep -n root /etc/passwd /etc/shadow

Příklad 5) Vytiskněte řádky bez vzoru (grep -v)

Vypište všechny řádky souboru /etc/passwd, který neobsahuje konkrétní slovo „linuxtechi“.

[e-mail chráněný]:~# grep -v linuxtechi /etc/passwd

Příklad 6) Prohledejte všechny řádky, které začínají konkrétním vzorem (grep ^)

Bash shell považuje stříšku (^) za speciální znak, který označuje začátek řádku nebo slova. Zobrazme řádky, které začínají slovem „root“ v souboru /etc/passwd, spusťte pod příkazem grep

[e-mail chráněný]:~# grep ^root /etc/passwdroot:x:0:0:root:/root:/bin/bash[e-mail chráněn]:~#

Příklad 7) Prohledejte všechny řádky, které končí konkrétním slovem (grep $)

Bash shell považuje dolarový sysmbol „$“ za speciální znak, který označuje konce řádku nebo slova. Vypište všechny řádky /etc/passwd, které končí „bash “slovo.

[e-mail chráněný]:~# grep bash$ /etc/passwdroot:x:0:0:root:/root:/bin/bahlinuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash[e-mail chráněn]:~#

Příklad 8) Hledejte slovo nebo vzor rekurzivně (grep -r)

Když spustíme příkaz grep bez uvedení názvů souborů, zobrazí se řádky ze všech souborů, které obsahují odpovídající řetězec. Provede vyhledávání rekurzivně v aktuálním pracovním adresáři.

Chcete-li slovo vyhledat rekurzivně ve všech souborech složky, použijte volbu „-r“ v příkazu grep, příklad je uveden níže:

[e-mail chráněný]:~# grep -r linuxtechi /etc//etc/subuid:linuxtechi:100000:65536/etc/group:adm:x:4:syslog,linuxtechi/etc/group:cdrom:x:24:linuxtechi/etc/group:sudo:x:27:linuxtechi/etc/group:dip:x:30:linuxtechi/etc/group:plugdev:x:46:linuxtechi/etc/group:lpadmin:x:115:linuxtechi/etc/group:linuxtechi:x:1000:/etc/group:sambashare:x:131:linuxtechi/etc/passwd-:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin /bash/etc/passwd:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash...................... ................................................................... ......

Výše uvedený příkaz bude rekurzivně hledat slovo „linuxtechi“ v adresáři „/etc“.

Příklad 9) Prohledejte všechny prázdné nebo prázdné řádky souboru (grep ^$)

Chcete-li vyhledat a zobrazit všechny prázdné nebo prázdné řádky v souboru, použijte speciální kombinaci znaků „^$“ v příkazu grep, příklad je uveden níže:

[e-mail chráněný]:~# grep ^$ /etc/shadow[chráněn e-mailem]:~#

Protože v souboru /etc/shadow není prázdný řádek, nic se nezobrazuje.

Příklad 10) Ignorování velkých a malých písmen při hledání (grep -i)

Volba -i v příkazu grep ignoruje velká a malá písmena, tj. při vyhledávání nerozlišuje velká ani malá písmena

Vezměme si příklad, chci hledat slovo „LinuxTechi“ v souboru passwd.

[e-mail chráněný]:~$ grep -i LinuxTechi /etc/passwdlinuxtechi:x:1001:1001::/home/linuxtechi:/bin/bash[e-mail chráněný]:~$

Poznámka: Příkaz Grep umožňuje vyhledávání na základě přesného slova pomocí volby „-w“, příklad je uveden níže,

[e-mail chráněn]:~$ grep -w cook /mnt/my_dish.txt

Výše uvedený příkaz bude hledat a hledat řádky, které mají slovo „cook“. Nedává výsledky, které má vaření.

Příklad 11) Hledejte více vzorů nebo slov (grep -e)

Například chci hledat „linuxtechi“ a „root“ slovo v jediném příkazu grep, pak použít volbu -e v příkazu grep následovanou vyhledávacím vzorem

[e-mail chráněný]:~# grep -e "linuxtechi" -e "root" /etc/passwdroot:x:0:0:root:/root:/bin/bahlinuxtechi:x:1000:1000:linuxtechi, ,,:/home/linuxtechi:/bin/bash[e-mail chráněný]:~#nebo [e-mail chráněný]:~# grep -E "linuxtechi|root" /etc/passwd

Příklad 12) Získání vzoru vyhledávání ze souboru (grep -f)

Použijte volbu „-f“ v příkazu grep k získání vyhledávacího vzoru ze souboru. Příklad je uveden níže:

Nejprve vytvořte soubor vyhledávacího vzoru „grep_pattern“ ve vašem aktuálním pracovním adresáři. V mém případě jsem vložil níže uvedený obsah.

[e-mail chráněn]:~# cat grep_pattern^linuxtechirootfalse$[email protected]:~#

Nyní zkuste hledat pomocí souboru grep_pattern.

[e-mail chráněný]:~# grep -f grep_pattern /etc/passwd

Příklad 13) Spočítejte počet řádků, které odpovídají vyhledávacímu vzoru (grep -c)

Pokud chcete spočítat počet řádků, které odpovídají vyhledávacímu vzoru, použijte volbu „-c“ v příkazu grep.

Podívejme se na výše uvedený příklad a spočítejme řádky, které odpovídají vyhledávacímu vzoru,

[e-mail chráněný]:~# grep -c -f grep_pattern /etc/passwd22[e-mail chráněný]:~#

Příklad 14) Zobrazte N počet řádků před a po shodě vzoru (grep -B -A)

a) Před porovnáváním vzoru zobrazte čtyři řádky, použijte volbu -B v příkazu grep, příklad je uveden níže:

[e-mail chráněný]:~# grep -B 4 "hry" /etc/passwd

b) Zobrazte čtyři řádky po vzoru, použijte volbu -A v příkazu grep

[e-mail chráněný]:~# grep -A 4 "hry" /etc/passwd

c) Zobrazte čtyři čáry kolem shody vzoru pomocí volby -C

[e-mail chráněný]:~# grep -C 4 "hry" /etc/passwd

To je z článku vše, doufám, že vám tyto příklady pomohou efektivněji používat příkaz grep. Prosím, podělte se o své názory a komentáře v sekci komentářů níže.

Přečtěte si také10 příkladů příkazů ‚rm‘ pro začátečníky v systému Linux


Linux
  1. 7 Příklady příkazů Linux df

  2. 8 Příklady příkazů Linux TR

  3. Příklady příkazů rm v Linuxu

  1. Příklady příkazů ps v Linuxu

  2. sa Příklady příkazů v Linuxu

  3. w Příklady příkazů v Linuxu

  1. Příklady příkazů ac v Linuxu

  2. Příklady příkazů df v Linuxu

  3. du příklady příkazů v Linuxu