GNU/Linux >> Linux Esercitazione >  >> Linux

14 Esempi di comandi Grep in Linux

Grep è un'utilità della riga di comando nei sistemi Linux e Unix che viene utilizzata per stampare le righe da un file dopo aver abbinato le stringhe o la parola. grep sta per global regular expression print, può essere usato per cercare stringhe da uno o più file in base al pattern. Uno schema può essere un singolo carattere, un gruppo di caratteri, una singola parola o una frase.

Quando eseguiamo il comando grep con la stringa specificata, se corrisponde, visualizzerà la riga del file contenente la stringa senza modificare il contenuto del file esistente.

Sintassi del comando Grep:

$ grep   

In questo tutorial discuteremo 14 utili esempi di comandi linux grep, tuffiamoci negli esempi.

Esempio 1) Cerca il modello o la parola in un file

Quando eseguiamo il comando grep seguito dalla stringa o dal modello di ricerca, verrà stampata la riga corrispondente di un file. L'esempio è mostrato di seguito.

Cerca la parola “linuxtechi” nel file /etc/passwd,

[email protected]:~# grep linuxtechi /etc/passwd
linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
[email protected]:~#

Esempio 2) Cerca il pattern in più file

Per cercare la parola "linuxtechi" in più file come /etc/passwd, /etc/shadow e /etc/gshadow, esegui

[email protected]:~# 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:cdrom:*::linuxtechi
/etc/gshadow:sudo:*::linuxtechi
/etc/gshadow:dip:*::linuxtechi
/etc/gshadow:plugdev:*::linuxtechi
/etc/gshadow:lpadmin:!::linuxtechi
/etc/gshadow:linuxtechi:!::
/etc/gshadow:sambashare:!::linuxtechi
[email protected]:~#

Esempio 3) Elenca il nome di quei file che contengono word ( grep -l)

Supponiamo di voler elencare i file che contengono la parola "linuxtechi" da più file, per farlo usa l'opzione "-l" nel comando grep seguita da word (pattern) e file.

[email protected]:~# grep -l linuxtechi /etc/passwd /etc/shadow /etc/fstab /etc/mtab
/etc/passwd
/etc/shadow
[email protected]:~#

Esempio 4) Cerca il modello nel file insieme al numero di riga associato (grep -n)

Supponiamo di volere la riga dell'elenco e il suo numero che corrisponde al modello o alla parola. Usa l'opzione '-n' nel comando grep, nel nostro esempio il modello è 'linuxtechi'

[email protected]:~# grep -n linuxtechi /etc/passwd
39:linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
[email protected]:~#

Di seguito è riportato un altro esempio che mostra la riga e il suo numero dopo aver abbinato una parola 'root' in /etc/passwd e /etc/shadow file

[email protected]:~# grep -n root /etc/passwd /etc/shadow

Esempio 5) Stampa le righe escludendo il pattern (grep -v)

Elenca tutte le righe del file /etc/passwd che non contengono la parola specifica “linuxtechi”.

[email protected]:~# grep -v linuxtechi /etc/passwd

Esempio 6) Cerca in tutte le righe che iniziano con uno schema specifico (grep ^)

Bash shell tratta il simbolo di accento circonflesso (^) come un carattere speciale che segna l'inizio di una riga o di una parola. Mostriamo le righe che iniziano con la parola "root" nel file /etc/passwd, eseguiamo sotto il comando grep

[email protected]:~# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
[email protected]:~#

Esempio 7) Cerca in tutte le righe che terminano con una parola specifica (grep $)

Bash shell tratta il simbolo dolar '$' come un carattere speciale che contrassegna le estremità di una riga o di una parola. Elenca tutte le righe di /etc/passwd che terminano con “bash ” parola.

[email protected]:~# grep bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
[email protected]:~#

Esempio 8) Cerca una parola o uno schema ricorsivamente (grep -r)

Quando eseguiamo il comando grep senza menzionare i nomi dei file, verranno visualizzate le righe di tutti i file che contengono la stringa corrispondente. Effettuerà la ricerca in modo ricorsivo nella directory di lavoro corrente.

Per cercare una parola in modo ricorsivo in tutti i file di una cartella, usa l'opzione '-r' nel comando grep, l'esempio è mostrato di seguito:

[email protected]:~# 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
............................................................................

Il comando sopra cercherà ricorsivamente la parola "linuxtechi" nella directory "/etc".

Esempio 9) Cerca in tutte le righe vuote o vuote di un file (grep ^$)

Per cercare ed elencare tutte le righe vuote o vuote da un file, utilizzare la combinazione di caratteri speciali '^$' nel comando grep, l'esempio è mostrato di seguito:

[email protected]:~# grep ^$ /etc/shadow
[email protected]:~#

Poiché non c'è una riga vuota in /etc/shadow file , quindi non viene visualizzato nulla.

Esempio 10) Ignora maiuscole e minuscole durante la ricerca (grep -i)

L'opzione -i nel comando grep ignora le lettere maiuscole, ovvero non discrimina maiuscole o minuscole durante la ricerca

Facciamo un esempio, voglio cercare la parola "LinuxTechi" nel file passwd.

[email protected]:~$ grep -i LinuxTechi /etc/passwd
linuxtechi:x:1001:1001::/home/linuxtechi:/bin/bash
[email protected]:~$

Nota : Il comando Grep consente la ricerca in base alla parola esatta utilizzando l'opzione '-w', l'esempio è mostrato di seguito,

[email protected]:~$ grep -w cook /mnt/my_dish.txt

Il comando sopra cercherà e cercherà le righe che hanno la parola "cuocere". Non darà risultati con la cottura.

Esempio 11) Cerca più pattern o parole (grep -e)

Ad esempio, voglio cercare la parola "linuxtechi" e "root" in un singolo comando grep, quindi utilizzare l'opzione -e nel comando grep seguito dal modello di ricerca

[email protected]:~# grep -e "linuxtechi" -e "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
linuxtechi:x:1000:1000:linuxtechi,,,:/home/linuxtechi:/bin/bash
[email protected]:~#
or 
[email protected]:~# grep -E "linuxtechi|root" /etc/passwd

Esempio 12) Ottenere il pattern di ricerca da un file (grep -f)

Usa l'opzione '-f' nel comando grep per ottenere il pattern di ricerca da un file. L'esempio è illustrato di seguito:

Per prima cosa crea un file del modello di ricerca "grep_pattern" nella tua directory di lavoro corrente. Nel mio caso ho inserito i contenuti di seguito.

[email protected]:~# cat grep_pattern
^linuxtechi
root
false$
[email protected]:~#

Ora prova a cercare usando il file grep_pattern.

[email protected]:~# grep -f grep_pattern /etc/passwd

Esempio 13) Conta il numero di righe che corrispondono al modello di ricerca (grep -c)

Se desideri contare il numero di righe che corrispondono al modello di ricerca, usa l'opzione '-c' nel comando grep.

Consideriamo l'esempio sopra e contiamo le righe che corrispondono al modello di ricerca,

[email protected]:~# grep -c -f grep_pattern /etc/passwd
22
[email protected]:~#

Esempio 14) Visualizza N numero di righe prima e dopo la corrispondenza del modello (grep -B -A)

a) Visualizza quattro righe prima della corrispondenza del modello, usa l'opzione -B nel comando grep, l'esempio è mostrato di seguito:

[email protected]:~# grep -B 4 "games" /etc/passwd

b) Visualizza quattro righe dopo la corrispondenza del modello, usa l'opzione -A nel comando grep

[email protected]:~# grep -A 4 "games" /etc/passwd

c) Visualizza quattro linee attorno alla corrispondenza del modello usando l'opzione -C

[email protected]:~# grep -C 4 "games" /etc/passwd

Questo è tutto dall'articolo, spero che questi esempi ti aiutino a usare il comando grep in modo più efficiente. Per favore condividi il tuo feedback e commenti nella sezione commenti qui sotto.

Leggi anche10 esempi di comandi "rm" per principianti di Linux


Linux
  1. 7 Esempi di comandi Linux df

  2. Esempi di comandi rm in Linux

  3. ps Esempi di comandi in Linux

  4. w Esempi di comandi in Linux

  5. ac Esempi di comandi in Linux

9 esempi di comandi diff in Linux

Come utilizzare il comando Grep in Linux + utili esempi di Grep

Comando IP Linux con esempi

15 esempi di utilizzo del comando Grep in Linux

Comando Grep in Linux (con esempi)

Esempi di comandi id in Linux