grep

Grep per più modelli o stringhe

Grep per più modelli o stringhe
Global Regular Expression Print o Grep è una potente utility utilizzata nel sistema operativo Linux. Attraverso grep, puoi cercare da file con diversi modelli o stringhe applicando limitazioni. La funzione Grep richiede uno o più file di input per la ricerca in directory o sottodirectory. Per cercare numerosi modelli, usiamo l'operatore OR. Questo operatore viene utilizzato per separare i modelli scritti nel comando. L'operatore di alterazione “|” si usa con la barra rovesciata. La sintassi per la ricerca di diverse espressioni regolari è la seguente:

Sintassi

$ grep 'pattern1\|pattern2' nomefile

Un'espressione regolare è sempre scritta in una singola citazione. Due nomi sono separati da barra rovesciata e operatore di alterazione. Il comando termina con il nome del file. Durante l'esecuzione di grep ricorsivo, viene utilizzata la directory o l'intero percorso anziché un singolo nome di file.

Prerequisito

In questo articolo impareremo la funzionalità di grep nella ricerca di più pattern e stringhe. A tal fine, è necessario che il sistema operativo Linux sia in esecuzione sulla tua scatola virtuale. Devi installarlo sul tuo sistema. Dopo la configurazione, avrai accesso per utilizzare tutte le applicazioni. Dopo aver effettuato l'accesso all'utente fornendo una password, vai alla riga di comando della shell del terminale per procedere.

Cerca per più pattern in un file usando Grep

Se vogliamo cercare più pattern o stringhe in un particolare file, usa la funzionalità grep per ordinare all'interno di un file con l'aiuto di più di una parola di input nel comando. Usiamo '\|' operatori per la separazione di due pattern in un comando.

$ grep 'technical\|job' filea.TXT

Il comando rappresenta come funziona grep. Entrambi i file menzionati verranno cercati in filea.TXT. Le parole cercate sono evidenziate nell'intero testo dell'output.

Per cercare più di due parole, continueremo ad aggiungerle con lo stesso metodo.

$ grep file 'grafica\|photoshop\|poster'b.TXT

Cerca più stringhe ignorando maiuscole/minuscole

Per comprendere il concetto di distinzione tra maiuscole e minuscole nella funzione grep in Linux, si consideri il seguente esempio. Due comandi funzionano su grep. Uno è con '-i' e l'altro è senza. Questo esempio mostra le differenze tra i comandi. Il primo mostra che verranno cercate due parole in un dato file. Tuttavia, come indicato nel comando “Aqsa”, inizia con la A maiuscola. Pertanto, non verrà evidenziato perché, in un particolare file, questo testo è in minuscolo.

$ grep file 'Aqsa\|sorella'20.TXT

Prenderà in considerazione solo la parola sorella, che si vedrà nell'output.

Nel secondo esempio, abbiamo ignorato la distinzione tra maiuscole e minuscole utilizzando il flag "-I". Questa funzione cercherà entrambe le parole e l'output verrà evidenziato. Sia che la parola 'Aqsa' sia scritta in maiuscolo o meno, grep cercherà la stessa corrispondenza nel testo all'interno di un file. Quindi, entrambi i comandi sono utili a modo loro.

$ grep -I file 'Aqsa\|sorella'20.TXT

Conteggio di più corrispondenze in un file

La funzione di conteggio aiuta a contare l'occorrenza di una o più parole in un particolare file. Ad esempio, se vuoi conoscere gli errori che si verificano nel sistema. Il dettaglio è registrato nel file di log. Per mantenere queste informazioni in una cartella specifica, scriverai il percorso delle cartelle. Questo esempio mostra che si sono verificati 71 errori nei file di registro.

Cerca corrispondenze esatte in un file

Se vuoi trovare una corrispondenza esatta nei file del tuo sistema, devi usare il flag "-w" per ordinarlo accuratamente. Abbiamo citato un esempio semplice e completo. Nell'esempio seguente, considera la ricerca senza "-w", questo comando porterà entrambe le parole corrispondenti all'input dato given. Ma con l'uso del flag "-w", la ricerca sarà limitata poiché le parole di input corrispondono solo alla prima stringa. La seconda parola non è evidenziata perché "-w" consente una corrispondenza accurata con il modello.

$ -iw 'hamna\|casa' file21.TXT

Qui -I è anche usato per rimuovere la distinzione tra maiuscole e minuscole nella ricerca di testo.

Come si vede nella foto, i risultati non sono gli stessi. Il primo comando porta tutti i dati correlati con stringhe intere, mentre il secondo comando mostra come i dati esatti corrispondono tramite grep nella ricerca di più stringhe.

Grep per più di un modello in un tipo di estensione di file specifico

La ricerca viene eseguita all'interno di tutti i file. Spetta a te se cerchi fornendo il nome del file Cercherà solo in file specifici. Ma fornendo un'estensione di file, i dati verranno cercati in tutti i file con la stessa estensione. Ci sono due diversi esempi per rappresentare il relativo risultato. Considerando il primo esempio, i file di errore verranno conteggiati in tutti i file del .estensione di registro. "-c" è usato per contare.

$ grep -c 'avviso\|errore' /var/log/*.log

Questo comando implica che i file verranno cercati in tutti i file del .estensione di registro. Il conteggio delle corrispondenze verrà mostrato nell'output per dimostrare meglio grep con l'estensione di file specifica.

Nel secondo esempio, abbiamo usato due parole nei nostri file in Linux con l'estensione del testo. Tutti i dati verranno visualizzati sotto forma di numeri. 0 indica nessun dato corrispondente, mentre diverso da 0 mostra che esiste una corrispondenza.

$ grep -c 'aqsa\|mio' /home/aqsayasin/*.TXT

Ricerca ricorsiva di più pattern in un file

Per impostazione predefinita, viene utilizzata la directory corrente se non è menzionata alcuna directory nel comando. Se vuoi cercare nella directory di tua scelta, allora devi menzionarlo. L'operatore "-r" è usato per grep in modo ricorsivo./home/aqsayasin/ mostra il percorso dei file, mentre *.txt mostra l'estensione. I file di testo saranno l'obiettivo di grep per la ricerca ricorsiva.

$ grep -R 'tecnico\|gratuito' /home/aqsayasin/*.TXT

L'output desiderato è evidenziato nel risultato che mostra l'esistenza di queste parole.

Conclusione

Nell'articolo sopra menzionato, abbiamo citato diversi esempi per rendere più facile per un utente comprendere il funzionamento dei comandi per cercare più pattern su Linux. Questa guida ti aiuterà ad aumentare le tue conoscenze esistenti.

Come utilizzare AutoKey per automatizzare i giochi Linux
AutoKey è un'utilità di automazione desktop per Linux e X11, programmata in Python 3, GTK e Qt. Utilizzando la sua funzionalità di scripting e MACRO, ...
Come mostrare il contatore FPS nei giochi Linux
I giochi Linux hanno avuto una grande spinta quando Valve ha annunciato il supporto Linux per il client Steam e i loro giochi nel 2012. Da allora, mol...
Come scaricare e giocare a Sid Meier's Civilization VI su Linux
Introduzione al gioco Civilization 6 è una versione moderna del concetto classico introdotto nella serie dei giochi Age of Empires. L'idea era abbasta...