Comando egrep Linux con esempi

Comando egrep Linux con esempi
Il comando EGREP appartiene alla famiglia del comando Grep che viene utilizzato per la ricerca di pattern in Linux. Se hai usato il comando Grep, EGREP funziona allo stesso modo di Grep -e (Grep Extended Regex '). EGREP scansiona un file specifico, linea a linea e stampa le righe che contengono la stringa di ricerca/espressione regolare. In questo articolo, spiegheremo 15 utili esempi dei comandi EGREP che aiuteranno i neofiti e persino gli esperti a eseguire ricerche significative in Linuxwe hanno eseguito questi esempi su un sistema Debian 10 Buster ma possono essere facilmente replicati sulla maggior parte delle distruzioni di Linux.

Esempio 1: ricerca di una stringa specifica in un file

Questo è l'uso più comune del comando EGREP. Quello che fai è che si specifica una stringa che si desidera cercare e il nome del file in cui si desidera cercare quella stringa. Il risultato visualizza quindi l'intera riga contenente la stringa cercata.

Sintassi:

$ egrep "Search_string" file

Esempio:

$ EGREP Debian Samplefile.TXT

In questo esempio, ho cercato la parola "Debian" nel file di testo specificato. Puoi vedere come i risultati mostrano l'intera riga che contiene la parola "Debian":

Esempio 2: ricerca di una stringa specifica in più file

Con il comando EGREP, è possibile cercare una stringa tra più file residenti nella stessa directory. Devi solo essere un po 'più specifico nel fornire un "modello" per i file certi. Questo diventerà più chiaro con l'esempio che presenteremo.

Sintassi:

$ egrep "Search_string" FileName_Pattern

Esempio:

Qui cercheremo la parola "debian" in tutto il .file txt specificando il modello di file come segue:

$ egrep "debian" *.TXT

Il comando ha stampato tutte le righe, insieme ai filenati che contengono la parola "debian" da tutti i .file txt nella directory corrente.

Esempio 3: ricerca ricorsivamente nella stringa nell'intera directory

Quando si desidera cercare una stringa in tutti i file da una directory e dalle sue sotto -directory, puoi farlo usando il flag -r con il comando EGREP.

Sintassi:

$ egrep -r "search_string" *

Esempio:

In questo esempio, sto cercando la parola "campione" nei file dell'intera directory corrente (download).

$ egrep -r "campione" *

I risultati contengono tutte le righe, insieme ai filenature, che contengono la parola "campione" da tutti i file nella directory dei download e le sue sotto -directory.

Esempio 4: eseguire una ricerca insensibile al caso

Con il flag -i, è possibile utilizzare il comando EGREP per stampare i risultati in base a una stringa di ricerca senza doversi preoccupare del suo caso.

Sintassi:

$ egrep -i file "search_string"

Esempio:

Qui, sto cercando la parola "Debian" e voglio che i risultati visualizzino tutte le righe dal file che contengono la parola "Debian" o "Debian, indipendentemente dal suo caso.

$ egrep -i file "search_string"

Puoi vedere come la bandiera -i mi ha aiutato a recuperare tutte le righe che contengono la stringa di ricerca attraverso una ricerca "insensibile".

Esempio 5: cercare una stringa come una parola completa e non come sotto-corda

Quando normalmente cerchi una stringa tramite EGREP, stampa tutte le parole che contengono la stringa come sotto-corda. Ad esempio, cercare la stringa "ON" stamperà tutte le parole contenenti la stringa "ON" come "ON", "Solo", "Monitor", "Clone", ecc. Se si desidera che i risultati visualizzino solo la parola "on" come parola completa e non come sotto -corda, puoi usare il flag -w con EGREP.

Sintassi:

$ egrep -w file "search_string"

Esempio:

Qui sto cercando la stringa "ON" in un file di esempio:

$ egrep -i "on" campione.TXT

Puoi vedere nell'output sopra, che contiene anche la parola ". Tuttavia, questo non è quello che voglio perché sto cercando esclusivamente la parola "on". Quindi, questo è il comando che userò invece:

$ egrep -iw "on" campione.TXT

Ora i miei risultati di ricerca includono solo le righe che contengono la parola "on" come un'intera parola.

Esempio 6: stampare solo i file di file che contengono la stringa

A volte vogliamo solo recuperare i nomi dei file che contengono una stringa specifica, piuttosto che stampare le righe che la contengono. Questo può essere fatto usando il flag -l (minuscolo l) con il comando EGREP.

Sintassi:

$ egrep -l "Search_string" FileName_Pattern

Esempio:

Qui sto cercando la stringa "campione" in tutto il .file txt nella directory corrente:

$ egrep -l campione *.TXT

I risultati della ricerca stampano solo il nome dei file che contengono la stringa specificata.

Esempio 7: stampare solo la stringa di ricerca da un file

Invece di stampare l'intera riga che contiene la stringa di ricerca, è possibile utilizzare il comando EGREP per stampare la stringa stessa. La stringa verrà stampata il numero di volte che appare nel file specificato.

Sintassi:

$ egrep -o file "search_string"

Esempio:

In questo esempio, sto cercando la parola "questo" nel mio file.

$ egrep -o questo campionefile_.TXT

Nota: questo utilizzo del comando è utile quando si cerca una stringa basata su un modello di espressione regolare. Spiegheremo le espressioni regolari in dettaglio in uno dei prossimi esempi.

Esempio 8: visualizzare N Numero di righe prima, dopo o intorno alla stringa di ricerca

A volte è molto importante conoscere il contesto in un file in cui viene utilizzata una stringa specifica. L'EGREP è utile nel senso che può essere utilizzato per visualizzare la linea contenente la stringa di ricerca e anche un numero specifico di righe prima, dopo e circondarla.

Questo è il file di testo di esempio che userò per spiegare i prossimi esempi:

N Numero di righe dopo la stringa di ricerca:

L'uso del flag A nel modo seguente visualizzerà la riga contenente la stringa di ricerca e il numero n di righe dopo di essa:

$ egrep -a FileName "Search_String"

Esempio:

$ egrep -a 2 "campione" campione.TXT

N Numero di righe prima della stringa di ricerca:

L'uso del flag B nel modo seguente visualizzerà la riga contenente la stringa di ricerca e il numero n di righe prima di esso:

$ egrep -b FileName "Search_String"

Esempio:

$ egrep -b 2 "campione" campione.TXT

N Numero di righe prima della stringa di ricerca:

L'uso del flag C nel modo seguente visualizzerà la riga contenente la stringa di ricerca e il numero N prima e dopo:

$ egrep -c FileName "Search_String"

Esempio:

$ egrep -c 2 "campione" campione.TXT

Esempio 9: corrispondere all'espressione regolare nei file

Il comando EGREP diventa più potente mentre cerchi espressioni regolari anziché stringhe di ricerca solide in un file.

Sintassi:

FileName $ Egrep "RegulaRespressions"

Spiegiamo come puoi usare espressioni regolari nella tua ricerca EGREP:

Operatore di ripetizione Utilizzo
? L'articolo precedente prima ? è facoltativo ed è abbinato al massimo una volta
* L'articolo precedente prima * verrà abbinato zero o più volte
+ L'elemento precedente prima + verrà abbinato una o più volte
N L'articolo precedente è esattamente corrispondente al numero di volte.
N, L'articolo precedente è abbinato a n o più volte
,M L'articolo precedente è abbinato al massimo m volte
n, m L'articolo precedente è abbinato almeno a n volte ma non più di m volte

Esempio:

Nell'esempio seguente, le linee contenenti la seguente espressione sono abbinate:

A partire da "Gnome" e terminare in "Programmi"

Esempio 10: evidenziando la stringa di ricerca

Quando si imposta la variabile di ambiente Grep_Options come di seguito, si ottiene l'output con la stringa/pattern di ricerca evidenziata nei risultati:

$ sudo export grep_options = '-color = auto' grep_color = '100; 8'

È quindi possibile cercare la stringa in qualsiasi modo che abbiamo descritto negli esempi di questo articolo.

Esempio 11: eseguire la ricerca invertita in un file

Per ricerca invertita, intendiamo che il comando EGREP stampare tutto nel file, tranne le righe che contengono la stringa di ricerca. Useremo il seguente file di esempio per spiegare la ricerca invertita tramite EGREP. Abbiamo stampato il contenuto del file usando il comando CAT:

Sintassi:

$ EGREP -V FileName "Search_String"

Esempio:

Dal file di esempio che abbiamo citato, vogliamo omettere la riga contenente la parola "due" nell'output, quindi useremo il seguente comando:

$ egrep -v "due" samplefile_.TXT

Puoi vedere come l'output contiene di tutto dal file di esempio ad eccezione della seconda riga che conteneva la stringa di ricerca "due".

Esempio 12: Esecuzione della ricerca invertita in base a più criteri/modello di ricerca

Con il flag -v, è anche possibile effettuare il comando EGREP per eseguire una ricerca invertita in base a più di una stringa/modello di ricerca.

Useremo lo stesso file di esempio che abbiamo menzionato nell'esempio 11 per spiegare questo scenario.

Sintassi:

$ egrep -v -e "search_string"/"pattern" -e "search_string"/"pattern"
… nome del file

Esempio:

Dal file di esempio che abbiamo menzionato, vogliamo omettere le righe contenenti le parole "una" e "due" nell'output, quindi useremo il seguente comando:

$ egrep -v -e "uno" -e "due" campionefile_.TXT

Abbiamo fornito due parole per omettere usando il flag -e, quindi l'output apparirà come segue:

Esempio 13: stampare il numero di righe che corrispondono alla stringa di ricerca

Invece di stampare la stringa cercata dal file o dalle righe contenenti, è possibile utilizzare il comando EGREP per contare e stampare il numero di righe abbinate alla stringa. Questo conteggio può essere recuperato usando il flag -c con il comando EGREP.

Sintassi:

$ egrep -c "search_string"

Esempio:

In questo esempio, useremo il flag -c per contare il numero di righe che contengono la parola "questo" nel nostro file di esempio:

$ egrep -c "questo" file

È inoltre possibile utilizzare la funzione di ricerca invertibile qui per contare e stampare il numero di righe che non contengono la stringa di ricerca:

$ grep -v -c "search_string"

Esempio 14: visualizzazione del numero di riga in cui è abbinata la stringa

Con il flag -n, è possibile creare il comando EGREP per stampare la riga abbinata insieme al numero di riga che contiene la stringa di ricerca.

Sintassi:

$ grep -n "search_string"

Esempio:

$ grep -n "this" Samplefile_.TXT

Puoi vedere come vengono visualizzati i numeri di riga rispetto ai risultati di ricerca.

Esempio 15: visualizzazione della posizione nel file in cui la stringa di ricerca corrisponde

Se si desidera conoscere la posizione nel file in cui esiste la stringa di ricerca, è possibile utilizzare il flag -b con il comando EGREP.

$ grep -o -b "search_string"

Esempio:

$ grep -o -b "this" Samplefile_.TXT

I risultati della ricerca stampano l'offset del byte del file in cui esiste la parola di ricerca.Questo era un utilizzo dettagliato del comando EGREP. Utilizzando una combinazione delle flag spiegate in questo articolo, è possibile eseguire ricerche più significative e complesse sui tuoi file.