GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi di comandi grep in Linux (cheat sheet)

Spesso in un file di grandi dimensioni, devi cercare una riga di dati specifica sepolta da qualche parte nel mezzo del file. Invece di scorrere manualmente l'intero file, puoi lasciare che il comando grep ti cerchi. Il formato della riga di comando per il comando grep è:

# grep [options] pattern [file]

Il comando grep cerca nell'input o nel file specificato le righe che contengono caratteri che corrispondono al modello specificato. L'output di grep sono le righe che contengono il modello di corrispondenza. A causa della popolarità del comando grep, ha subito molti cambiamenti nello sviluppo nel corso della sua vita. Molte funzionalità sono state aggiunte al comando grep. Se guardi le pagine man per il comando grep, vedrai quanto è versatile.

Se vuoi invertire la ricerca (righe di output che non corrispondono allo schema), usa il parametro -v:

$ grep -v t file1
one
four
five
$

Se hai bisogno di trovare i numeri di riga in cui si trovano i modelli corrispondenti, usa il parametro -n:

$ grep -n t file1
2:two
3:three
$

Se hai solo bisogno di vedere un conteggio di quante righe contengono il modello corrispondente, usa il parametro -c:

$ grep -c t file1
2
$

Se devi specificare più di un pattern corrispondente, usa il parametro -e per specificare ogni singolo pattern:

$ grep -e t -e f file1
two
three
four
five
$

Esempi di comando grep

1. Per interpretare PATTERN come un'espressione regolare estesa:

# grep --extended-regexp PATTERN
# grep -E PATTERN 

2. Per interpretare PATTERN come un elenco di stringhe fisse:

# grep -F PATTERN
# grep --fixed-strings PATTERN 

3. Per interpretare PATTERN come un'espressione regolare di base:

# grep -G PATTERN
# grep --basic-regexp PATTERN 

4. Per interpretare PATTERN come un'espressione regolare Perl:

# grep -P PATTERN
# grep --perl-regexp PATTERN 

5. Per utilizzare PATTERN come motivo:

# grep -e PATTERN, 
# grep --regexp=PATTERN 

6. Per ottenere motivi da FILE, uno per riga:

# grep -f FILE, --file=FILE

7. Per ignorare le distinzioni tra maiuscole e minuscole sia nel PATTERN che nei file di input:

# grep -i PATTERN
# grep --ignore-case PATTERN

8. Per invertire il senso di corrispondenza, per selezionare le righe non corrispondenti:

# grep -v PATTERN
# grep --invert-match PATTERN 

9. Per selezionare solo quelle righe contenenti corrispondenze che formano parole intere:

# grep -w PATTERN
# grep --word-regexp PATTERN

10. Per selezionare solo quelle corrispondenze che corrispondono esattamente all'intera riga:

# grep -x PATTERN
# grep --line-regexp PATTERN 

11. Per ignorare il caso:

# grep -y PATTERN 

12. Per sopprimere l'uscita normale; stampa invece un conteggio delle righe corrispondenti:

# grep -c PATTERN
# grep --count PATTERN 

13. Per visualizzare a colori:

# grep --color PATTERN 

14. Per sopprimere l'uscita normale; stampa invece il nome di ogni file di input, da out non sarà previsto:

# grep -L
# grep --files-without-match 

15. Per sopprimere l'uscita normale; stampa invece il nome di ogni file di input da cui sono stati stampati gli output:

# grep -l
# grep --files-with-matches 

16. Silenzio; non scrivere nulla sullo standard output Esci immediatamente con stato zero se viene trovata una corrispondenza:

# grep -q 
# grep --quiet
# grep --silent 

17. Per interrompere la lettura di un file dopo NUM righe corrispondenti:

# grep -m NUM
# grep --max-count=NUM 

18. Per stampare solo le parti corrispondenti (non vuote) di una riga corrispondente:

# grep -o PATTERN
# grep --only-matching PATTERN 

19. Per eliminare i messaggi di errore relativi a file inesistenti o illeggibili:

# grep -s PATTERN
# grep --no-messages PATTERN 

20. Per stampare l'offset di byte in base 0 all'interno del file di input prima di ogni riga di output:

# grep -b PATTERN
# grep --byte-offset PATTERN 

21. Per stampare il nome del file per ogni corrispondenza:

# grep -H PATTERN
# grep --with-filename PATTERN

22. Per eliminare il prefisso dei nomi di file sull'output:

# grep -h PATTERN
# grep --no-filename PATTERN 

23. Per visualizzare l'input effettivamente proveniente dallo standard input come input proveniente dal file LABEL:

# grep -cd PATTERN | grep --label=mysearch -H PATTERN 

24. Per anteporre a ciascuna riga di output il numero di riga in base 1 all'interno del relativo file di input:

# grep -n PATTERN
# grep --line-number PATTERN 

25. Per assicurarsi che il primo carattere del contenuto effettivo della riga si trovi su un punto di tabulazione:

# grep -T PATTERN
# grep --initial-tab PATTERN 

26. Per segnalare gli offset dei byte in stile Unix:

# grep -u PATTERN
# grep --unix-byte-offsets PATTERN 

27. Per emettere uno zero byte invece del carattere che normalmente segue un nome di file:

# grep -Z PATTERN
# grep --null PATTERN

28. Per stampare NUM righe di contesto finale dopo le righe corrispondenti:

# grep -A NUM PATTERN
# grep --after-context=NUM PATTERN 

29. Per stampare NUM righe di contesto iniziale prima delle righe corrispondenti:

# grep -B NUM PATTERN
# grep --before-context=NUM PATTERN 

30. Per stampare NUM righe di contesto di output:

# grep -C NUM PATTERN
# grep --context=NUM PATTERN 

31. Per elaborare un file binario come se fosse testo:

# grep -a PATTERN /tmp/bin
# grep -text PATTERN /tmp/bin 

32. Per assumere che il file sia di tipo TYPE:

# grep --binary-files=TYPE PATTERN 

33. Se un file di input è un dispositivo, FIFO o socket, usa ACTION per elaborarlo:

# grep -D ACTION PATTERN
# grep --devices=ACTION PATTERN 

34. Se un file di input è una directory, utilizzare ACTION per elaborarlo:

# grep -d ACTION PATTERN
# grep --directories=ACTION PATTERN 

35. Per saltare i file il cui nome di base corrisponde a GLOB:

# grep --exclude=GLOB PATTERN 

36. Per ignorare i file il cui nome di base corrisponde a uno qualsiasi dei glob di nomi file letti da FILE:

# grep --exclude-from=FILE PATTERN 

37. Per escludere le directory che corrispondono al pattern DIR dalle ricerche ricorsive:

# grep --exclude-dir=DIR PATTERN

38. Per elaborare un file binario come se non contenesse dati corrispondenti:

# grep -I PATTERN

39. Per cercare solo i file il cui nome di base corrisponde a GLOB:

# grep --include=GLOB 

40. Per leggere tutti i file in ogni directory, ricorsivamente:

# grep -r PATTERN
# grep -R PATTERN 

41. Per utilizzare il buffer di riga sull'output:

# grep --line-buffered PATTERN 

42. Se possibile, usa la chiamata di sistema mmap per leggere l'input, invece della lettura predefinita:

# grep --mmap PATTERN 

43. Per trattare i file come binari:

# grep -U /tmp/file PATTERN
# grep --binary /tmp/file PATTERN 

44. Per trattare l'input come un insieme di righe:

# grep -z PATTERN
# grep --null-data PATTERN 

45. Per visualizzare la guida:

# grep -h 

46. ​​Per stampare il numero di versione di grep:

# grep -V 


Linux
  1. 7 Esempi di comandi Linux df

  2. Esempi di comandi di connessione iSCSI (cheat sheet)

  3. Esempi di comandi rm in Linux

  4. ps Esempi di comandi in Linux

  5. sa Esempi di comandi in Linux

14 Esempi di comandi Grep in Linux

Come utilizzare il comando Grep in Linux + utili esempi di Grep

15 esempi di utilizzo del comando Grep in Linux

Comando Grep in Linux (con esempi)

15 Esempi pratici di comandi Grep in Linux / UNIX

Esempi di comandi id in Linux