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.