Come trovare un testo specifico usando grep
su Linux. grep
è una forma abbreviata per Global Regular Expression Print. È uno degli strumenti più utili in Linux per cercare una stringa specifica su file ricorsivamente o su un singolo file.
In questa guida imparerai come usare il grep
comando per vari casi d'uso sulla tua macchina Linux.
Casi d'uso
- Ricerca normale su un file.
- Ricerca ricorsiva nelle directory.
- File esclusi.
- Compresi i file.
- Ricerca di espressioni regolari.
- Utilizzare grep con altri comandi per filtrare l'output.
Sintassi del comando grep
grep [OPTIONS] STRING [FILE(S)]
OPZIONI sono facoltativi e includono vari metodi per eseguire la ricerca.
STRINGA è richiesto che utilizza la stringa particolare da cercare.
FILE(I) Puoi aggiungere file o directory per eseguire la ricerca o solo il .
per cercare nella directory corrente.
Per impostazione predefinita, grep fa distinzione tra maiuscole e minuscole. Se vuoi ignorare il caso puoi usare il -i
opzione che ignora la distinzione tra maiuscole e minuscole e restituisce il contenuto con lettere minuscole e maiuscole.
Ricerca normale all'interno del file
Questo è l'uso più basilare del comando grep. Basta usare il comando con la stringa che devi cercare e il nome del file.
grep string filename
Questo comando cercherà il testo specificato all'interno del file fornito e produrrà i risultati.
Ricerca ricorsiva comprese le directory
Per cercare tra tutti i file che si trovano all'interno della directory è necessario utilizzare il -r
opzione per eseguire una ricerca ricorsiva all'interno della cartella specificata.
Il -r
opzione non seguire i collegamenti simbolici. Se desideri effettuare una ricerca su link simbolici, devi utilizzare il maiuscolo -R
opzione invece di piccolo -r
opzione.
grep -r string folder-name #Include Symbolic link files grep -R string folder-name
Escludi file durante l'utilizzo di grep
Puoi usare il --exclude
opzione per escludere directory, file specifici o file con estensioni specifiche.
grep -r string --exclude=filename --exclude=*.png --exclude=folder/* folder-name
Includi file durante l'utilizzo di grep
Puoi usare il --include
opzione per includere solo le directory specifiche, file specifici o file con estensioni specifiche.
grep -r string --include=filename --include=*.php --include=folder/* folder-name
Ricerca di espressioni regolari
Usa il ^
simbolo (caret) per abbinare l'espressione all'inizio di una riga. Nell'esempio seguente, il testo string
corrisponderà solo se si verifica all'inizio di una riga.
grep "^string" filename
Usa il $
simbolo (dollaro) per abbinare l'espressione alla fine di una riga. Nell'esempio seguente, il testo string
corrisponderà solo se si trova alla fine di una riga.
grep "string$" filename
Usa il .
simbolo (punto) per abbinare qualsiasi singolo carattere. Ad esempio, per abbinare tutto ciò che inizia con string1
quindi ha due caratteri e termina con il testo string2
, potresti usare il seguente schema.
grep "string1..string2" filename
Usa [ ]
(parentesi) per far corrispondere ogni singolo carattere racchiuso tra parentesi. Ad esempio, trova le righe che contengono boat
o “coat
, potresti usare il seguente schema.
grep "[bc]oat" filename
Per sfuggire al significato speciale del carattere successivo, usa il \
simbolo (barra rovesciata).
Usa grep con altri comandi
Puoi anche usare grep per filtrare l'output fornito usando un altro comando.
ps -ef | grep mysql | grep -v grep
Questo filtrerà l'output per mostrare solo quelli che sono con mysql
.
Conclusione
Ora hai imparato come eseguire una ricerca usando il comando grep con vari metodi sulla tua macchina Linux.
Grazie per il tuo tempo. In caso di problemi o feedback, si prega di lasciare un commento qui sotto.