GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi comuni del comando Grep in Linux [con download gratuito di cheatsheet]

Grep è un potente comando UNIX che ti consente di cercare all'interno del contenuto del file su una varietà di parametri. È particolarmente utile durante la risoluzione dei problemi o il debug.

Il comando grep ha un numero enorme di opzioni e casi d'uso. Probabilmente non avrai mai bisogno o non li utilizzerai mai tutti. Tuttavia, finirai per utilizzare una manciata di comandi grep per la maggior parte del tempo.

Questo articolo elenca i comandi grep più comuni con esempi rapidi. Linux Handbook ha già un articolo dettagliato su grep, quindi non approfondirò qui. Mi limiterò a visualizzare le opzioni comuni e la loro spiegazione qui.

Va bene se hai già familiarità con il comando grep ma continui a dimenticare quale opzione fa cosa.

Opzione Esempio di comando Descrizione
io file di modello grep -i Ricerca senza distinzione tra maiuscole e minuscole
A grep -Un file di pattern Mostra n righe dopo la corrispondenza
B grep -B n file di pattern Mostra n righe prima della partita
C grep -C n file di pattern Mostra n righe prima e dopo la partita
v file di modello grep -v Mostra le righe che non corrispondono
c file di modello grep -c Conta il numero di righe corrispondenti
l file di modello grep -l Visualizza solo i nomi dei file
con file di modello grep -w Abbina la parola esatta
e file grep -e regex Abbina il pattern regex
a grep -un file di pattern Cerca nei file binari
r grep -r pattern dir Cerca ricorsivamente nella directory

Ho incluso un cheatsheet in PDF che puoi scaricare, stampare e tenere sulla tua scrivania.

Scarica il cheat sheet di Grep

Esempi rapidi del comando Grep

Probabilmente sai già che per cercare un particolare testo o pattern in un file, devi usare grep in questo modo:

grep search_pattern filename

Vediamo alcuni casi d'uso comuni del comando grep.

Per impostazione predefinita, la ricerca con grep fa distinzione tra maiuscole e minuscole. Puoi ignorare la corrispondenza tra maiuscole e minuscole con -i opzione:

grep -i search_pattern filename

In questo modo, grep restituirà righe che corrispondono a entrambi Holmes e holmes .

Mostra le righe prima e dopo le righe corrispondenti

Per impostazione predefinita, vengono visualizzate solo le righe corrispondenti. Ma quando stai risolvendo qualcosa, è utile vedere un paio di righe prima e/o dopo le righe corrispondenti.

Puoi usare il -A per mostrare le righe dopo quelle corrispondenti. Ricorda, A sta per Dopo.

Il comando seguente mostrerà le linee corrispondenti insieme alle 5 linee dopo la corrispondenza.

grep -A 5 search_pattern filename

Allo stesso modo, puoi usare il -B opzione per mostrare le righe prima di quelle corrispondenti. Ricorda, B sta per Prima.

Il comando seguente mostrerà 5 righe prima di quelle corrispondenti insieme alle righe corrispondenti.

grep -B 5 search_pattern filename

La mia preferita è l'opzione -C perché mostra le righe che sono prima e dopo quelle corrispondenti. Ricorda, C qui sta per Cerchio.

Il comando seguente mostrerà 5 righe prima di quella corrispondente, la riga corrispondente e 5 righe dopo la riga corrispondente.

grep -C 5 search_pattern filename

Mostra le righe che non corrispondono

Puoi usare grep per visualizzare tutte le linee che NON corrispondono al modello dato. Questa 'corrispondenza inversa' viene utilizzata con -v opzione:

grep -v search_pattern filename

Puoi combinare -i e -v opzioni.

Conta il numero di righe corrispondenti

Invece di mostrare le linee corrispondenti, puoi semplicemente ottenere quante linee corrispondono al modello con -c opzione. Questa è la c minuscola.

grep -c search_pattern filename

Puoi combinare -c e -v opzione per ottenere il numero di righe che non corrispondono al modello specificato. Ovviamente puoi usare l'opzione senza distinzione tra maiuscole e minuscole -i .

Mostra i numeri di riga delle righe corrispondenti

Per mostrare i numeri di riga delle righe corrispondenti, puoi utilizzare il -n opzione.

grep -n search_pattern filename

Puoi fare lo stesso con la ricerca inversa.

Cerca in più file

Puoi fornire più di un file in grep in cui cercare.

grep search_pattern file1 file2

Potrebbe funzionare, ma un esempio più pratico è la ricerca in un particolare tipo di file. Ad esempio, se vuoi cercare una stringa solo negli script della shell (file che terminano con .sh), puoi usare:

grep search_pattern *.sh

Cerca tutti i file in una directory in modo ricorsivo

Puoi eseguire una ricerca ricorsiva con l'opzione grep -r . Cercherà il modello dato in tutti i file nella directory corrente e nelle sue sottodirectory.

grep -r search_pattern directory_path

Visualizza solo i nomi dei file

Per impostazione predefinita, grep mostra le righe corrispondenti. Se hai eseguito la ricerca su più file e vuoi vedere solo quali file contengono la stringa, puoi usare il -l opzione.

grep -l search_pattern files_pattern

Supponiamo di voler vedere quali file Markdown contengono la parola "manuale", puoi usare:

grep -l handbook *.md

Cerca solo la parola intera

Per impostazione predefinita, grep mostrerà tutte le righe che contengono la stringa data. Potresti non volerlo sempre. Se stai cercando la parola "fatto", verranno visualizzate anche le righe che contengono le parole "doner" o "abbandonato".

Per fare in modo che grep cerchi solo la parola intera, puoi usare l'opzione -w :

grep -w search_string file

In questo modo, se cerchi la parola 'fatto', verranno visualizzate solo le righe che contengono 'fatto', non 'doner' o 'abbandonato'.

Cerca pattern regex

Puoi potenziare la tua ricerca usando il modello regex. C'è un'opzione dedicata -e che consente di utilizzare il pattern regex e l'opzione -E che consente di utilizzare modelli regex estesi.

grep -e regex_pattern file

Cerca questo o quel pattern

Puoi cercare più pattern nella stessa ricerca grep. Se vuoi vedere le righe che contengono uno schema o l'altro, puoi usare l'operatore OR | . Tuttavia, devi sfuggire a questo carattere speciale nel modo seguente.

grep 'pattern1\|pattern' filename

È possibile utilizzare più modelli con l'operatore OR.

Non esiste un'opzione specifica per l'operatore AND. Puoi usare grep più volte con il reindirizzamento della pipe per questo.

Cerca nei file binari

Grep ignora i file binari per impostazione predefinita. Puoi farlo cercare nei file binari come se fosse un file di testo usando il -a opzione.

grep -a pattern binary_file

Scarica il cheat sheet dei comandi Grep

Puoi aggiungere questa pagina ai segnalibri per fare rapidamente riferimento alle opzioni del comando grep e ai casi d'uso.

Puoi anche scaricare questo cheatsheet di grep in formato PDF, stamparlo e tenerlo sulla tua scrivania per avere una rapida occhiata senza perdere tempo.

Scarica Grep Command Cheatsheet GRATISDownload istantaneo dei comuni comandi grep con descrizione in formato PDF.grep-command-cheatsheet.pdf78 KB

Fammi sapere se hai altri casi d'uso comuni di grep che vorresti vedere in questa pagina.


Linux
  1. Come usare il comando Linux grep

  2. Il comando Sed di Linux:utilizzo ed esempi

  3. Esempi essenziali del comando file in Linux

  4. Il comando gratuito in Linux spiegato con esempi

  5. Usa il comando Linux grep

10 esempi utili del comando di ordinamento in Linux

Esempi essenziali del comando ps in Linux

Comando Grep in Linux (con esempi)

Uso del comando grep in Linux

8 usi comuni del comando touch di Linux

Esempi di comandi gratuiti in Linux