Nel mondo Linux, G eneral R egular E xpressione P arser o grep è uno dei comandi più potenti utilizzati da ogni amministratore Linux. Usandolo, dovresti essere in grado di cercare il contenuto dei file ed eseguire anche una ricerca all'interno dell'output del comando:non solo questo, ma molto altro, di cui parleremo in questo tutorial.
Utilizzo del comando GREP con esempi
In questa guida, ti guideremo attraverso l'utilizzo dei comandi e ti mostreremo alcuni esempi utili e utili che dovrebbero farti risparmiare molto tempo. Questo tutorial viene eseguito sulla macchina Ubuntu, ma il comando funziona su tutte le distribuzioni Linux.
Installazione
Per iniziare a utilizzare il comando, devi prima verificare se è già installato sul tuo sistema. Se non è installato, esegui il seguente comando nel terminale.
sudo apt install grep
Puoi controllare la versione del comando per assicurarti che sia installata correttamente.
grep --version

Sintassi
grep [option/s] [pattern] [file]
Dove possono essere le [opzione/i]:
- -i –> utilizzato per garantire il modello di ricerca indipendentemente dalla distinzione tra maiuscole e minuscole.
- -c –> Anteprima, il conteggio del pattern corrispondente.
- -v –> seleziona le righe non corrispondenti che non contengono il modello specificato.
- -n –> Visualizza in anteprima il numero di riga.
Dove il [pattern] è un'espressione regolare e il [file] è il file che cercherai nel suo contenuto.
Esempi
Creeremo un file di test da utilizzare nei nostri esempi di scenari di casi.
vi grep_tuts

Incolla le seguenti righe nel file grep_tuts:
Hi Guys, i am hend. And this is a tutorial file for the usage of the grep commad. The next 2 lines are empty lines. Hope You Will Enjoy This Tutorial. Bye.

Esempio 1. Per cercare una stringa in un singolo file.
grep "hend" grep_tuts

Esempio 2. Facciamo una copia del file grep_tuts, che useremo in seguito.
cp grep_tuts grep_tuts2

Ora per cercare una stringa specifica in più file, usa il comando successivo.
grep "hend" grep_tuts grep_tuts2

Esempio 3. Per cercare una determinata stringa in un file indipendentemente dal suo caso.
grep -i "tutorial" grep_tuts

Esempio 4. Per cercare un determinato modello in un file indipendentemente dalla distinzione tra maiuscole e minuscole.
grep -i "the.*lines" grep_tuts
Ciò significa che la ricerca di qualsiasi riga inizia con "the" stringa e termina con "lines". Dove * indica zero o più caratteri e l'opzione -i ignora il caso "the" e "lines".

Ma nel caso in cui non hai utilizzato l'opzione -i, non ci saranno risultati.
grep "the.*lines" grep_tuts

Esempio 5. Per visualizzare due righe dopo il motivo che stai cercando.
grep -A 2 "hend" grep_tuts

Esempio 6. Per visualizzare una riga prima del motivo che stai cercando.
grep -B 1 "hend" grep_tuts

Esempio 7. Per visualizzare una riga intorno (o dopo e prima) il pattern che stai cercando.
grep -C 1 "hend" grep_tuts

Esempio 8. Per cercare una determinata stringa in tutti i file che esistono nella directory corrente.
grep -r "Enjoy" *

Esempio 9. Per visualizzare tutte le righe che non contengono la stringa data.
grep -v -i -e "Enjoy" grep_tuts

Esempio 10. Per visualizzare il conteggio di tutte le righe che contengono la stringa che stai cercando.
grep -c "this" grep_tuts

Esempio 11. Per visualizzare il conteggio di tutte le righe che contengono la stringa che stai cercando indipendentemente dalla distinzione tra maiuscole e minuscole.
grep -c -i "this" grep_tuts

Esempio 12. Per visualizzare il conteggio del pattern non corrispondente.
grep -v -c "this" grep_tuts

Esempio 13. Per visualizzare tutti i nomi di file che contengono la stringa che stai cercando.
grep -l "this" *

Esempio 14. Per visualizzare il numero di righe.
grep -n "this" grep_tuts

Esempio 15. Per cercare l'output di un comando specifico. Ad esempio, elenca tutti i processi in esecuzione avviati dall'utente "tuts".
ps aux | grep tuts

Riguarda l'utilizzo del comando grep in Linux.