GNU/Linux >> Linux Esercitazione >  >> Linux

grep:comando non trovato

Il comando grep, nella sua forma più elementare, è uno strumento di ricerca. A differenza di trova o individua, non si limita alla ricerca di nomi di file; viene spesso utilizzato per cercare nel contenuto di un file una particolare stringa di testo. Come output, grep mostra ogni riga intera del file in cui è stato trovato il tuo modello di ricerca. In questo modo, puoi usare grep sia per elaborare un file di testo che per leggere i contenuti che sono più pertinenti per te. Ad esempio, potresti voler controllare gli eventi di accesso di un utente esaminando un registro di accesso. Invece di leggere l'intero registro o scorrere un termine di ricerca in un editor di testo, puoi semplicemente stampare tutte le righe pertinenti sullo schermo con il comando grep.

Sintassi

La sintassi del comando grep è:

# grep [options] {search pattern} {file names}

Utilizzo di grep per trovare i file

Oltre a cercare il contenuto dei file, puoi usare grep per cercare in una directory al fine di individuare un determinato file. Ls -l | Il comando grep audit restituisce un lungo elenco di tutti i file nella directory corrente il cui nome contiene "audit".

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
$

Se si verifica l'errore seguente durante l'esecuzione del comando grep:

grep: command not found

puoi provare a installare il pacchetto seguente secondo la tua scelta di distribuzione:

Distribuzione del sistema operativo Comando
OS X brew install grep
Debian apt-get install grep
Ubuntu apt-get install grep
Alpino apk aggiungi grep
Arci Linux pacman -S grep
Kali Linux apt-get install grep
CentOS yum install grep
Fedora dnf install grep
Raspbian apt-get install grep

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. gestore abbonamenti:comando non trovato

  2. dnf:comando non trovato

  3. bc:comando non trovato

  4. dpkg:comando non trovato

  5. id:comando non trovato

nc:comando non trovato

aws-shell:comando non trovato

tvservice:comando non trovato

lspci:comando non trovato

pstree:comando non trovato

ln:comando non trovato