GNU/Linux >> Linux Esercitazione >  >> Linux

Il tutorial sul comando Grep con esempi per principianti

In questo tutorial impareremo a conoscere "grep" comando. Grep sta per G lobale r egular e xpressione p strappare. Come suggerisce il nome, Grep viene utilizzato per cercare file di testo con espressioni regolari (a breve regex ). Stampa le linee che corrispondono al modello dato in un file di testo. Se non viene fornito alcun file, grep cercherà ricorsivamente il modello specificato nei file nella directory corrente. Grep ha due varianti, vale a dire egrep e fgrep . Queste varianti sono deprecate ma sono fornite per la compatibilità con le versioni precedenti. Invece di usare "grep -E" e "grep -F", puoi usare rispettivamente "egrp" e "fgrep". Senza ulteriori indugi, iniziamo.

Esempi di comandi Grep

Ho un file chiamato file.txt con alcune parole a caso. Diamo un'occhiata a file.txt:

$ cat file.txt
ostechnix
Ostechnix
o$technix
linux
linus
unix
technology
hello world
HELLO world

Per iniziare la ricerca, digita grep seguito da cosa stai cercando e da dove stai cercando. Ad esempio, cercherò la stringa "nix" nel file.txt. Per farlo, eseguo:

$ grep nix file.txt

Esempio di output:

ostechnix
Ostechnix
o$technix
unix

Come puoi vedere nell'output sopra, abbiamo due parole che contengono il modello di corrispondenza "nix". Se la stringa di ricerca contiene due parole, menzionale tra virgolette singole come di seguito.

$ grep 'hello world' file.txt 
hello world

Puoi anche usare -n flag per mostrare i numeri di riga nell'output:

$ grep -n nix file.txt

Esempio di output:

1:ostechnix
2:Ostechnix
3:o$technix
6:unix

Questo può essere utile quando lavori con un codice molto lungo.

Tieni presente che grep fa distinzione tra maiuscole e minuscole . Ad esempio, quando cerchi "os" , non visualizzerà le righe che contengono lettere maiuscole, ad esempio Os.

Controlla il seguente esempio.

$ grep os file.txt 
ostechnix

Ma ho un'altra parola chiamata "Ostechnix" in file.txt, ma grep non l'ha elencata.

Se vuoi, tuttavia, ignorare la distinzione tra maiuscole e minuscole, puoi utilizzare "-i" segnala come sotto.

$ grep -i os file.txt 
ostechnix
Ostechn1x
$ grep -i 'hello world' file.txt 
hello world
HELLO world

Ora, a grep non importava del caso e nel risultato abbiamo ottenuto le parole che contengono lettere maiuscole e minuscole.

Possiamo anche reindirizzare un output di un comando in grep. Dai un'occhiata al seguente esempio.

$ cat file.txt | grep os
ostechnix

Ora guarda cosa abbiamo. L'output del file.txt viene reindirizzato a grep e sono state visualizzate le parole che contengono le lettere "os" in file.txt.

Possiamo anche usare alcuni caratteri speciali o espressioni regolari in grep.

  • ^ - cerca all'inizio della riga.
  • $ - cerca alla fine della riga.
  • . - Cerca qualsiasi carattere.

Lascia che ti mostri un esempio, così puoi capire dove e come utilizzare quei caratteri speciali.

Sai già, possiamo cercare le parole che contengono la stringa "tech" come di seguito.

$ grep tech file.txt
ostechnix
Ostechnix
o$technix
technology

E se volessi solo cercare le righe che iniziano solo con la parola "tecnologia". Non vuoi visualizzare tutte le parole che contengono la stringa, ma solo le parole che hanno la stringa "tech" all'inizio. È anche possibile. È qui che tornano utili i caratteri speciali.

Per cercare le parole che corrispondono al modello "tech" all'inizio della riga in un file, eseguire:

$ grep ^tech file.txt
technology

Allo stesso modo, possiamo cercare le parole che terminano con una o più lettere particolari, ad esempio "x" , come di seguito.

$ grep x$ file.txt
ostechnix
Ostechnix
o$technix
linux
unix

Inoltre, puoi trovare le parole che contengono qualsiasi carattere utilizzando . (punto).

Ad esempio, cerchiamo qualsiasi parola che abbia "n" nel file.

$ grep .n file.txt
ostechnix
Ostechnix
o$technix
linux
linus
unix
technology

Ora dovresti avere una conoscenza di base dell'utilizzo di grep. Andiamo avanti e impariamo le altre due varianti, ovvero egrep e fgrep .

Esempi di comandi Egrep

egrep sta per e grep esteso . È simile a "grep -E" comando. Farà tutte le cose che farà grep. Tuttavia, fornisce alcune funzionalità aggiuntive, come l'uso di espressioni regolari complicate, rispetto al normale comando grep pronto all'uso.

Ad esempio, possiamo cercare qualsiasi parola che inizi con "l" o "o" .

Ricorda che usiamo il simbolo del cursore (^) per cercare le parole all'inizio della riga. Quindi, il nostro comando per la query precedente sarà:

$ egrep '^(l|o)' file.txt
ostechnix
o$technix
linux
linus

Vedere? Abbiamo tutte le parole che iniziano con "l" o "o". Tieni presente che il normale comando grep non può farlo.

Allo stesso modo, possiamo cercare le righe che iniziano con qualsiasi intervallo di caratteri compreso tra "l" e "u". Ciò significa che otterremo le linee che iniziano con l, m, n, o, p, q, r, s, t e u. Tutto il resto verrà omesso dal risultato.

$ egrep '^[l-u]' file.txt
ostechnix
o$technix
linux
linus
unix
technology

Tieni presente che ho utilizzato parentesi quadra ([) per cercare l'intervallo di parole. Poiché grep distingue tra maiuscole e minuscole, non troverà righe che iniziano con lettere maiuscole nell'intervallo specificato.

Per visualizzare tutte le righe che iniziano con lettere maiuscole e minuscole, utilizziamo:

$ egrep '^[l-u]|[L-U]' file.txt

Oppure,

$ egrep '^([l-u]|[L-U])' file.txt

Esempio di output:

ostechnix
Ostechnix
o$technix
linux
linus
unix
technology
HELLO world

Vedere? Ora abbiamo le parole che iniziano con l'intervallo di caratteri da "l" a "u" (maiuscolo o minuscolo).

Esempi di comandi Fgrep

fgrep sta per f ast grep . È simile a "grep -F" . fgrep non è in grado di riconoscere espressioni regolari o caratteri speciali. fgrep può essere utilizzato dove vuoi che vengano valutate le espressioni regolari.

Ad esempio, utilizziamo il seguente comando per trovare le parole che terminano con "x" .

$ grep x$ file.txt
ostechnix
Ostechnix
o$technix
linux
unix

Ora esegui lo stesso comando con fgrep.

$ fgrep x$ file.txt

Non visualizzerà nulla, perché non è stato possibile valutare i caratteri speciali.

Vediamo ora un altro esempio. Per cercare le parole che corrispondono alla stringa "o$" con il comando grep, facciamo:

$ grep o$ file.txt

Ma non otteniamo nulla, perché? Perché, come per il comando precedente, utilizziamo il simbolo del dollaro($) per trovare le parole che terminano con "o". Poiché non c'erano caratteri termina con "o" in file.txt, non otteniamo nulla.

Ora esegui lo stesso comando con fgrep.

$ fgrep o$ file.txt 
o$technix

Vedere? Qui è dove usiamo il comando fgrep. Ignora semplicemente il simbolo del dollaro (il carattere speciale, ovviamente) e visualizza la parola che contiene la stringa "o$".

Per maggiori dettagli su grep, digita:

$ grep --help

Darà tutte le opzioni possibili. Oppure, fai riferimento alle pagine man.

$ man grep

Lettura consigliata:

  • Impara a utilizzare le pagine man in modo efficiente
Etimologia di grep

Grep è stato scritto durante la notte da Ken Thompson , lo stesso ragazzo che ha scritto Unix. Ma perché e come ha preso il nome? Professore Brian Kernighan spiega l'etimologia di grep in questo video.

E questo è tutto. Grep è uno dei comandi importanti che dovresti imparare a fondo.

Ora sai cos'è grep e come usarlo per cercare file di testo con schemi corrispondenti in GNU/Linux. Inoltre hai imparato come Grep ha preso il nome. Spero che questo sia stato utile.


Linux
  1. Linux expand Command Tutorial per principianti (con esempi)

  2. Tutorial sui comandi di Linux factor per principianti (con esempi)

  3. Linux yes Command Tutorial per principianti (con esempi)

  4. Il tutorial sui comandi di tipo con esempi per principianti

  5. Il tutorial sul comando Shuf con esempi per principianti

Il tutorial sul comando piega con esempi per principianti

Il tutorial sul comando df con esempi per principianti

Il tutorial sui comandi principali con esempi per principianti

Il tutorial del comando mktemp con esempi per principianti

Il tutorial sui comandi Uniq con esempi per principianti

Il tutorial del comando fc con esempi per principianti