Come usare il comando Grep in Linux

Comprensione del comando grep con esempi pratici per filtrare e visualizzare facilmente il contenuto del file

GREPsta per "Stampa globale a espressioni regolari". È un'utile utilità della riga di comando fornita da Linux, per cercare la riga di testo che corrisponde al modello fornito dall'utente.

grepprende l'input dall'utente sotto forma di stringhe o parole che l'utente desidera cercare in un particolare file. Il comando controlla quindi il file specificato dall'utente per questo modello e quindi restituisce le righe che corrispondono al modello fornito.

Fa un ottimo lavoro filtrando il contenuto di un file, rendendo così il nostro compito più facile cercare contenuti particolari su uno o più file contemporaneamente.

In questo articolo esaminiamo grepnel dettaglio il funzionamento del comando con alcuni esempi pratici.

Opzioni disponibili con grepcomando

Queste sono alcune delle opzioni fondamentali che utilizzerai frequentemente con il grepcomando.

Opzione Descrizione
-i Per una ricerca senza distinzione tra maiuscole e minuscole
-r Per cercare ricorsivamente tutti i file nella directory specificata e nelle sue sottodirectory
-c Per visualizzare il numero totale di volte in cui appare una stringa
-v Per visualizzare le linee non corrispondenti
-w Filtra per quella particolare parola usata separatamente

Usando il grepcomando

grepIl comando viene solitamente utilizzato con l' |utilità pipe ( ). Può essere implementato con la shell pipe quando si desidera utilizzarlo con altri comandi Linux. Tuttavia, greppuò essere utilizzato anche singolarmente senza l' |utilità pipe ( ).

Vediamo alcune delle sintassi di base del grepcomando con e senza l'utilità pipe.

Lascia che ti mostri prima il file di testo di esempio che userò per illustrare il grepcomando.

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
cartesian coordinates
importance of all th cartesian coordinates.
Following are two empty lines.



use of a bullock cart is a common sight in the village for the agrarian chores.

This is the end of the sample file.

greputilizzato con l' utilità pipe ( | )

grepIl comando può essere implementato insieme ad altri comandi Linux usando le shell pipe. Ad esempio, utilizzare il catcomando per visualizzare il contenuto del file ma allo stesso tempo reindirizzare l'output utilizzando il grepcomando per visualizzare solo il contenuto che si desidera vedere. Questo sarà più chiaro quando esamineremo l'esempio.

Sintassi :

[command] | grep [string]

Esempio :

cat sample.txt | grep legislature

Qui, ho usato il catcomando per visualizzare alcune righe dal file 'sample.txt'. Devono essere visualizzate solo le righe che contengono la parola "legislatura" e ignorare il resto delle righe.

Uscita :

[email protected]:~/workspace$ cat sample.txt | grep legislature
india stands on three pillars of legislature, executive and judiciary.
[email protected]:~/workspace$

greputilizzato senza utilità pipe ( | )

greppuò essere utilizzato anche direttamente come comando individuale senza utilizzare l' | utilità pipe ( ).

Sintassi :

grep [string_to_be_searched] [filename]

Esempio :

grep India sample.txt

Uscita :

India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource

Pertanto, ho utilizzato il grepcomando direttamente per filtrare le righe che contengono la stringa "India" dal file di testo "sample.txt".

Ricerca senza distinzione tra maiuscole e minuscole utilizzando il grepcomando

Linux è molto cauto riguardo alla distinzione tra maiuscole e minuscole quando eseguiamo i comandi sul terminale. Ciò richiede che l'utente stia attento al caso della stringa inserita nel comando.

Vediamolo attraverso un esempio.

grep peace sample.txt

In questo caso, non otterremo un output poiché non esiste una parola come "pace" nel file di esempio. Abbiamo la parola 'Pace' con la 'P' maiuscola. La parola è la stessa ma quando usiamo il grepcomando senza alcuna opzione, cerca la corrispondenza esatta nel file, ignorando eventuali modifiche nelle lettere maiuscole.

Per evitare questa ambiguità, puoi semplicemente usare l' -iopzione che dice letteralmente al grepcomando "dimentica il caso in cui ho inserito la stringa e cerca semplicemente tutti i modelli corrispondenti nel file".

Sintassi:

grep -i [string] [filename]

Esempio :

grep -i peace sample.txt

Uscita :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
India Is a Beautiful Country Of Peace Loving People.

Tutte le righe corrispondenti vengono visualizzate indipendentemente dal caso in cui si trova la stringa corrispondente.

Ricerca ricorsiva usando il grepcomando

L' -ropzione cercherà tutti i file in una directory e tutte le sue sottodirectory che corrispondono al modello di stringa fornito dall'utente nel comando.

Sintassi :

grep -i -r [string] [file_path]

Esempio :

grep -i -r tomcat /home/gaurav/workspace

La stringa qui è "tomcat" e verrà cercata nell'area di lavoro della directory. Verranno scansionate anche tutte le sottodirectory ei file nella directory 'workspace' in modo che corrispondano allo schema di stringa fornito.

Uscita :

./context_log.policy:// catalina.policy - Security Policy Permissions for Tomcat 7
./context_log.policy:// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${catalina.home},
./context_log.policy://  grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..}
./context_log.policy:grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
./context_log.policy:    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server";
./context.xml:    
./catalina.properties:# - Tomcat Bootstrap JARs
./catalina.properties:# - Tomcat API JARs
./catalina.properties:# - Tomcat JARs
./catalina.properties:# - Common non-Tomcat JARs
./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar
./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.char.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000
./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000
./server.xml:              pathname="conf/tomcat-users.xml" />
./server.xml:    
./tomcat-users.xml:  
./tomcat-users.xml:
./web.xml:  
./web.xml:  

NOTA : durante l'utilizzo -rdell'opzione con il grepcomando è necessario fornire il percorso del file e non il nome del file

Ricerca di parole intere solo con il grepcomando

Molte volte il caso è che cercherai una parola ma finirai per popolare il tuo terminale con le righe corrispondenti che contengono la tua parola corrispondente ma non come una singola parola. Potresti vedere le righe che contengono alcune parole la cui sottoparte è la stringa che hai inserito.

Confuso con questo? Non preoccuparti, è molto più facile da capire una volta ottenuto l'esempio.

Esempio :

Qui, voglio cercare una singola parola "carrello" e visualizzare tutte le righe corrispondenti a questa parola nel file "sample.txt".

grep -i cart sample.txt

Uscita :

Cartesian coordinates
importance of all the Cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores
The cart went missing as the boy left it loose.

Nell'output si può osservare che la parola 'cartesiano' contiene anche la parola 'carrello' e quindi vengono visualizzate anche le righe contenenti la parola 'cartesiano' anche se non vogliamo che vengano visualizzate.

Puoi usare l' -wopzione con il grepcomando per risolvere questa ambiguità.

Sintassi :

grep -i -w [string] [filename]

Esempio :

grep -i -w cart sample.txt

Uscita :

use of a bullock cart is a common sight in the village for the agrarian chores.
The cart went missing as the boy left it loose.

Ora, quando hai usato l' wopzione – con grepotterrai solo le righe in cui la parola 'carrello' è usata nel suo insieme.

Ricerca invertita usando il grepcomando

grepcomando può essere utilizzato anche in modo inverso. Possiamo usare il grepcomando in modo opposto nascondendo le righe corrispondenti e visualizzando solo le righe in cui non viene trovata la corrispondenza. Puoi farlo usando l' -vopzione con il grepcomando.

Sintassi :

grep -i -v [string] [filename]

Esempio :

grep -i -v resource sample.txt

Uscita :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
cartesian coordinates
importance of all th cartesian coordinates.




use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.

Nell'output vengono visualizzate tutte le altre righe tranne la riga che contiene la parola "risorsa".

Conteggio delle occorrenze della stringa corrispondente

L'output del grepcomando è solitamente molto lungo se i dati nel file sono estesi. Più sono le corrispondenze, più lunghe sono le uscite del grepcomando. Linux ti offre un'opzione in cui puoi visualizzare il numero di occorrenze della corrispondenza.

Sintassi :

grep -i -c [string] [filename]

Esempio :

grep -i -c india sample.txt

Uscita :

[email protected]:~/workspace$ grep -i -c india sample.txt
4
[email protected]:~/workspace$

Qui, l'output è un numero che è il numero di occorrenze della parola "India" nel file sample.txt.

NOTA : ho usato l' -iopzione in ogni esempio per essere al sicuro con il problema della distinzione tra maiuscole e minuscole. Se sei sicuro del caso della parola che stai cercando, puoi tranquillamente omettere l' -i opzione.

Conclusione

Abbiamo appreso gli usi fondamentali del grepcomando sui sistemi Linux in questo tutorial. Abbiamo anche imparato a visualizzare vari contenuti che meglio si adattano alle nostre esigenze e a non affollare il terminal con carichi di linee. grepIl comando farà sicuramente risparmiare tempo se usato per scansionare grandi set di dati.

Tags: #grep

Come copiare e incollare su Chromebook

Come copiare e incollare su Chromebook

La prima cosa che potresti chiederti mentre passi a un Chromebook è come fare le cose di base, il tipo di cose che avevi sul palmo della tua mano nel tuo sistema operativo precedente. Copiare e incollare è una di queste funzioni fondamentali che devi usare prima o poi.

Come fare un test di digitazione su Linux con tt

Come fare un test di digitazione su Linux con tt

Nell'era moderna della tecnologia, la dattilografia è diventata una delle attività più comuni per molte professioni. Imparare a digitare più velocemente con precisione può aiutarti a fare più cose nello stesso lasso di tempo.

Il Wi-Fi non funziona su Ubuntu? Ecco come risolverlo

Il Wi-Fi non funziona su Ubuntu? Ecco come risolverlo

Ubuntu è famoso per la sua robustezza e relativamente meno errori. Ma non è senza problemi, di sicuro. Uno di questi problemi è con il suo driver Wi-Fi. Potresti accendere il tuo sistema solo per scoprire che il tuo Wi-Fi non funziona.

Come creare e scansionare codici QR su Chromebook

Come creare e scansionare codici QR su Chromebook

I codici di risposta rapida, o codici QR in breve, sono codici a barre avanzati che contengono più informazioni rispetto a un codice a barre tradizionale. Questi codici sono bidimensionali, consentendoti di scansionarli verticalmente o orizzontalmente.

Come installare e rimuovere i pacchetti in Arch Linux

Come installare e rimuovere i pacchetti in Arch Linux

Vuoi installare pacchetti su Arch Linux ma non sai come fare? Molte persone affrontano questo problema quando migrano per la prima volta dalle distribuzioni basate su Debian ad Arch. Tuttavia, puoi facilmente gestire i pacchetti sul tuo sistema basato su Arch utilizzando i gestori di pacchetti.

10+ migliori estensioni GNOME per Ubuntu 20.04

10+ migliori estensioni GNOME per Ubuntu 20.04

Molte delle estensioni popolari come Gno-Menu, Extended Gestures non funzionano con Ubuntu 20.04. Quindi, ecco un elenco delle migliori estensioni GNOME funzionanti

Come installare Spotify su Linux

Come installare Spotify su Linux

Spotify è uno dei più grandi servizi di streaming musicale in circolazione. Ha client nativi sia per dispositivi mobili (Android e iOS) che desktop (Mac e Windows).

9 comandi di base per iniziare con Linux

9 comandi di base per iniziare con Linux

Le guide pratiche di Linux spesso si aspettano che tu esegua determinate operazioni nel terminale, il che all'inizio può sembrare intimidatorio. Ma non preoccuparti; questo cheat sheet del comando Linux coprirà il processo di apertura di un terminale e l'emissione di alcuni comandi utili.

5 migliori app di trasferimento file Wi-Fi da Ubuntu ad Android

5 migliori app di trasferimento file Wi-Fi da Ubuntu ad Android

Un meccanismo come FTP, trasferimento file peer-to-peer, trasferimento Wi-Fi ti farà risparmiare tempo se condividi spesso file tra il tuo Android e Ubuntu.

Come spostare file Linux con il comando Mv

Come spostare file Linux con il comando Mv

Anche se probabilmente sai già come spostare un file in Linux utilizzando il browser di file della GUI, potresti chiederti se c'è un comando di spostamento nel terminale che ti consente di spostare rapidamente i file in directory diverse. Il comando mv è quello che desideri ed è facile da usare con la sua sintassi semplice e alcuni flag di sicurezza opzionali.