Unix / Linux Come usare i comandi grep

grep è una delle più importanti utility da riga di comando Unix / Linux. Questo tutorial mostrerà diversi modi di utilizzare l'utilità di ricerca testo.

grep sta per "Global search in Regular Expression and Print".

grep visualizza le linee in un file che corrisponde a un pattern STDIN (Input through keyboard). Il pattern che viene fornito come input tramite grep sono espressioni regolari che possono essere utilizzate per cercare facilmente i contenuti del file.

Sintassi: grep [OPZIONI] MODELLO [FILE]

Comando 1.1

$ grep 'root' / etc / passwd

Il comando precedente cercherà i contenuti con 'root' scritto all'interno di un file '/ etc / passwd'. Se un file contiene stringhe come "rootwr", "ishroot" corrisponderà alla radice in "rootwr" e "ishroot" e visualizzerà il risultato. Se vuoi trovare la parola esatta 'root' usando grep segui il comando sottostante.

Comando 1.2

$ grep -w 'root' / etc / passwd

Usa -w per abbinare la parola esatta.

Il comando sopra corrisponderà alla parola -w esatta 'root'. Ora se un file contiene stringhe come 'rootwr', 'root', 'ishroot', questo comando visualizza solo per pattern 'root' non per 'rootwr' e 'ishroot' che sono stati visualizzati nel primo comando 1.1.

Comando 1.3

$ grep -i 'bug' / etc / passwd

Usa -i per cercare case-insensitively.

Se stai cercando con questo comando 'grep' bug '/ etc / passwd',
Corrisponde solo al pattern di stringa "bug" che non è un pattern insensibile al maiuscolo / minuscolo. Se / etc / passwd contiene 'Bug', 'BuG', 'bGG' questo comando 'grep' bug '/ etc / passwd' mostrerà risultati vuoti.

Quindi, per cercare la maiuscole / minuscole in modo insensibile in modo che corrisponda al modello, è necessario utilizzare '-i' in modo che corrisponda a tutti i modelli per una determinata stringa.

per esempio $ grep -i 'bug' / etc / passwd

abbinerà i modelli per:

'Bug'
'Bug'
'Bug'
'Bug'
'ERRORE'
'Bug'
'Bug'

Tutti i modelli che valuta da "bug".

Comando 1.4

$ grep -n 'root' / etc / passwd

Utilizzare -n per stampare i numeri di linea delle partite

ora l'opzione -n ​​visualizza i numeri di riga con le linee, che contiene il modello di input. Il comando sopra mostra i numeri di riga che contengono la stringa 'root'.

Se vuoi abbinare più di una parola, puoi farlo usando il seguente comando:

Comando 1.5

$ grep -E -n 'backup | root' / etc / passwd

Il comando sopra cercherà entrambe le parole modello 'backup' e 'root' e mostrerà i numeri di riga con le linee che contengono entrambe le parole.

Dove:

Usa -E per le espressioni regolari estese

più aiuto su questo può essere trovato usando il comando 'man grep'.

Comando 1.6

$ grep -v 'root' / etc / passwd

Utilizzare -v per stampare linee che non contengono pattern.
Il comando sopra mostra le linee che non contengono il pattern 'root'.

Comando 1.7

$ grep -r 'root' / etc /

Usa -r per cercare ricorsivamente una directory.
Questo comando cercherà e visualizzerà il pattern 'root' in tutti i file all'interno della directory '/ etc /'.

Comando 1.8

$ grep -c 'bash' / etc / passwd

Usa '-c' per restituire un conteggio delle linee con il modello corrispondente.

Questo comando mostra il conteggio delle linee che contiene lo schema 'bash' in un file / etc / passwd.

Comando 1.9

$ grep -r -l 'root' / etc

Utilizzare '-l' per restituire i nomi dei file che contengono almeno una riga contenente il modello.

Il comando sopra mostra i nomi dei file che contengono il pattern 'root',
all'interno della directory / etc. Nota importante qui è necessario utilizzare l'opzione '-r' (comando 1.7) per attraversare ricorsivamente la directory / etc.