English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il comando grep di Linux viene utilizzato per cercare stringhe che corrispondono a determinati criteri nei file.
Il comando grep viene utilizzato per cercare file che contengono un modello di esempio specificato. Se viene trovato un file che contiene il modello di esempio specificato, il comando grep predefinito visualizzerà la colonna che contiene il modello di esempio. Se non viene specificato alcun nome di file o se il nome di file fornito è -, il comando grep leggerà i dati dal dispositivo di input standard.
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
参数:
-a o --text : Non ignorare i dati binari.
-A<numero di righe da mostrare> o --after-context=<numero di righe da mostrare> : Oltre a mostrare la colonna che corrisponde al modello, mostra anche il contenuto dopo la riga.
-b o --byte-offset : Indica il numero di carattere dell'inizio della riga prima di mostrare la riga che corrisponde allo stile.
-B<numero di righe da mostrare> o --before-context=<numero di righe da mostrare> : Oltre a mostrare la riga che corrisponde allo stile, mostra anche il contenuto prima della riga.
-c o --count : Calcola il numero di colonne che corrispondono allo stile.
-C<numero di righe da mostrare> o --context=<numero di righe da mostrare> o-<numero di righe da mostrare> : Oltre a mostrare la riga che corrisponde allo stile, mostra anche il contenuto prima e dopo la riga.
-d <azione> o --directories=<azione> : Quando si specifica di cercare una directory invece di un file, deve essere utilizzato questo parametro; altrimenti, l'istruzione grep restituirà un messaggio e interromperà l'azione.
-e<stilo modello> o --regexp=<stilo modello> : Specifica la stringa come lo stile di ricerca del contenuto del file.
-E o --extended-regexp : Usa lo stile come espressione regolare estesa.
-f<file delle regole> o --file=<file delle regole> : Specifica il file delle regole, il cui contenuto contiene una o più stili di regola, in modo che grep trovi il contenuto dei file che corrispondono alle condizioni delle regole, il formato è una regola di stile per riga.
-F o --fixed-regexp : Usa lo stile come elenco di stringhe fisse.
-G o --basic-regexp : Usa lo stile come rappresentazione normale.
-h o --no-filename : Non indica il nome del file di appartenenza della riga prima di mostrare la riga che corrisponde allo stile.
-H o --with-filename : Indica il nome del file di appartenenza della riga prima di mostrare la riga che corrisponde allo stile.
-i o --ignore-case : Ignora la differenza tra maiuscole e minuscole.
-l o --file-with-matches : Elenca i nomi dei file di contenuto che corrispondono allo stile specificato.
-L o --files-without-match : Elenca i nomi dei file di contenuto che non corrispondono allo stile specificato.
-n o --line-number : Indica il numero di colonna dell'intera riga prima di mostrare la riga che corrisponde allo stile.
-o o --only-matching : Mostra solo la parte che corrisponde a PATTERN.
-q --quiet o --silent : Non mostra alcuna informazione.
-r --recursive : L'effetto di questo parametro è lo stesso del parametro specificato "-d recurse".
-s --no-messages : Non mostra messaggi di errore.
-v --invert-match : Mostra tutte le righe che non contengono il testo di corrispondenza.
-V --version : Mostra informazioni sulla versione.
-w --word-regexp : Mostra solo le colonne che soddisfano i criteri come intere parole.
-x --line-regexp : Mostra solo le colonne che soddisfano i criteri.
-y : L'effetto di questo parametro è lo stesso del parametro specificato "-i".
1、Cerca file con suffisso file nel percorso corrente che contengono la stringa test e stampa la riga del testo. In questo caso, si può utilizzare il comando seguente:
grep test *file
Risultato come segue:
$ grep test test* #Cerca file con prefisso "test" che contengono la stringa "test" testfile1:This a Linux testfile! #Elenca le righe che contengono il carattere test nel file testfile1 testfile_2:Questo è un file di test linux! #Elenca le righe che contengono il carattere test nel file testfile_2 testfile_2:Linux test #Elenca le righe che contengono il carattere test nel file testfile_2
2、Cerca ricorsivamente i file che soddisfano i criteri. Ad esempio, cerca tutti i file che contengono la stringa "update" nei file del percorso /etc/acpi e nelle sue sottocartelle (se esistono sottocartelle), e stampa il contenuto della riga in cui si trova la stringa. Il comando utilizzato è:
grep -r update /etc/acpi
I risultati dell'output sono i seguenti:
$ grep -r update /etc/acpi #Cerca ricorsivamente "etc/acpi" #Contiene file con "update" /etc/acpi/ac.d/85-anacron.sh:# (Cose come slocate updatedb causano molta IO.) Piuttosto che /etc/acpi/resume.d/85-anacron.sh:# (Cose come slocate updatedb causano molta IO.) Rather than IO.) Piuttosto che
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update
Ricerca inversa. I precedenti esempi cercano e stampano righe che soddisfano i requisiti, tramite il parametro "-v" si possono stampare contenuti di righe che non soddisfano i requisiti.
grep -v test *test*
Risultato come segue:
$ grep-v test* # Cerca file con nome che contiene test ma senza test testfile1:helLinux! testfile1:Lin è un sistema operativo libero di tipo Unix. testfile1:Lin testfile_1:HELLO LINUX! testfile_1:LINUX È UN SISTEMA OPERATIVO LIBERO DI TIPO UNIX. testfile_1:THIS IS A LINUX TESTFILE! testfile_2:HELLO LINUX! testfile_2:Linux è un sistema operativo libero di tipo Unix.