GNU/Linux >> LINUX-Kenntnisse >  >> Linux

grep:Befehl nicht gefunden

Der Befehl grep ist in seiner einfachsten Form ein Suchwerkzeug. Im Gegensatz zu find oder locate ist es nicht darauf beschränkt, Dateinamen zu finden; Es wird am häufigsten verwendet, um den Inhalt einer Datei nach einer bestimmten Textzeichenfolge zu durchsuchen. Als Ausgabe zeigt grep jede vollständige Zeile der Datei an, in der Ihr Suchmuster gefunden wurde. Auf diese Weise können Sie mit grep sowohl eine Textdatei verarbeiten als auch die Inhalte lesen, die für Sie am relevantesten sind. Beispielsweise möchten Sie möglicherweise die Anmeldeereignisse eines Benutzers prüfen, indem Sie sich ein Zugriffsprotokoll ansehen. Anstatt das gesamte Protokoll zu lesen oder einen Suchbegriff in einem Texteditor durchzugehen, können Sie mit dem grep-Befehl einfach alle relevanten Zeilen auf dem Bildschirm ausgeben.

Syntax

Die Syntax des grep-Befehls lautet:

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

Mit grep Dateien finden

Zusätzlich zum Durchsuchen des Inhalts von Dateien können Sie mit grep ein Verzeichnis durchsuchen, um eine bestimmte Datei zu finden. Das ls -l | Der Befehl grep audit gibt eine lange Liste aller Dateien im aktuellen Verzeichnis zurück, deren Name „audit“ enthält.

Wenn Sie die Suche umkehren möchten (Ausgabezeilen, die nicht mit dem Muster übereinstimmen), verwenden Sie den Parameter -v:

$ grep -v t file1
one
four
five
$

Wenn Sie die Zeilennummern finden müssen, in denen die übereinstimmenden Muster gefunden werden, verwenden Sie den Parameter -n:

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

Wenn Sie nur sehen möchten, wie viele Zeilen das übereinstimmende Muster enthalten, verwenden Sie den Parameter -c:

$ grep -c t file1
2
$

Wenn Sie mehr als ein übereinstimmendes Muster angeben müssen, verwenden Sie den Parameter -e, um jedes einzelne Muster anzugeben:

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

Wenn beim Ausführen des grep-Befehls der folgende Fehler auftritt:

grep: command not found

Sie können versuchen, das folgende Paket gemäß Ihrer Wahl der Distribution zu installieren:

Betriebssystemverteilung Befehl
OS X brew install grep
Debian apt-get install grep
Ubuntu apt-get install grep
Alpin apk grep hinzufügen
Arch Linux pacman -S grep
Kali-Linux apt-get install grep
CentOS yum install grep
Fedora dnf install grep
Raspbian apt-get install grep

grep-Befehlsbeispiele

1. So interpretieren Sie PATTERN als erweiterten regulären Ausdruck:

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

2. So interpretieren Sie PATTERN als eine Liste fester Zeichenfolgen:

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

3. So interpretieren Sie PATTERN als einfachen regulären Ausdruck:

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

4. So interpretieren Sie PATTERN als regulären Perl-Ausdruck:

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

5. So verwenden Sie PATTERN als Muster:

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

6. Um Muster aus DATEI zu erhalten, eines pro Zeile:

# grep -f FILE, --file=FILE

7. Um Unterscheidungen zwischen Groß- und Kleinschreibung sowohl im PATTERN als auch in den Eingabedateien zu ignorieren:

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

8. So kehren Sie den Sinn der Übereinstimmung um, um nicht übereinstimmende Zeilen auszuwählen:

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

9. So wählen Sie nur die Zeilen aus, die Übereinstimmungen enthalten, die ganze Wörter bilden:

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

10. So wählen Sie nur die Übereinstimmungen aus, die genau mit der gesamten Zeile übereinstimmen:

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

11. Um den Fall zu ignorieren:

# grep -y PATTERN 

12. Um die normale Ausgabe zu unterdrücken; geben Sie stattdessen eine Anzahl übereinstimmender Zeilen aus:

# grep -c PATTERN
# grep --count PATTERN 

13. Zur Anzeige in Farbe:

# grep --color PATTERN 

14. Um die normale Ausgabe zu unterdrücken; geben Sie stattdessen den Namen jeder Eingabedatei aus, von out wird nicht erwartet:

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

15. Um die normale Ausgabe zu unterdrücken; geben Sie stattdessen den Namen jeder Eingabedatei aus, aus der die Ausgabe gedruckt wurde:

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

16. Zu beruhigen; nichts in die Standardausgabe schreiben Sofort mit Null-Status beenden, wenn eine Übereinstimmung gefunden wird:

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

17. So beenden Sie das Lesen einer Datei nach NUM übereinstimmenden Zeilen:

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

18. So drucken Sie nur die übereinstimmenden (nicht leeren) Teile einer übereinstimmenden Zeile:

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

19. So unterdrücken Sie Fehlermeldungen über nicht vorhandene oder nicht lesbare Dateien:

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

20. So drucken Sie den 0-basierten Byte-Offset innerhalb der Eingabedatei vor jeder Ausgabezeile:

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

21. So drucken Sie den Dateinamen für jede Übereinstimmung:

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

22. So unterdrücken Sie das Präfix von Dateinamen bei der Ausgabe:

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

23. Um Eingaben anzuzeigen, die tatsächlich von der Standardeingabe kommen, als Eingaben, die von der Datei LABEL:

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

24. Um jeder Ausgabezeile die auf 1 basierende Zeilennummer in ihrer Eingabedatei voranzustellen:

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

25. Stellen Sie sicher, dass das erste Zeichen des aktuellen Zeileninhalts auf einem Tabstopp liegt:

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

26. So melden Sie Byte-Offsets im Unix-Stil:

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

27. Um ein Null-Byte anstelle des Zeichens auszugeben, das normalerweise einem Dateinamen folgt:

# grep -Z PATTERN
# grep --null PATTERN

28. So drucken Sie NUM Zeilen nachgestellten Kontext nach übereinstimmenden Zeilen:

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

29. So drucken Sie NUM Zeilen führenden Kontexts vor übereinstimmenden Zeilen:

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

30. Um NUM Zeilen Ausgabekontext zu drucken:

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

31. So verarbeiten Sie eine Binärdatei, als wäre sie Text:

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

32. Anzunehmen, dass die Datei vom Typ TYPE:

ist
# grep --binary-files=TYPE PATTERN 

33. Wenn eine Eingabedatei ein Gerät, FIFO oder Socket ist, verwenden Sie ACTION, um sie zu verarbeiten:

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

34. Wenn eine Eingabedatei ein Verzeichnis ist, verwenden Sie ACTION, um sie zu verarbeiten:

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

35. So überspringen Sie Dateien, deren Basisname mit GLOB übereinstimmt:

# grep --exclude=GLOB PATTERN 

36. Zum Überspringen von Dateien, deren Basisname mit einem der aus FILE gelesenen Dateinamen-Globs übereinstimmt:

# grep --exclude-from=FILE PATTERN 

37. So schließen Sie Verzeichnisse, die mit dem Muster DIR übereinstimmen, von rekursiven Suchen aus:

# grep --exclude-dir=DIR PATTERN

38. So verarbeiten Sie eine Binärdatei, als ob sie keine übereinstimmenden Daten enthalten würde:

# grep -I PATTERN

39. Um nur Dateien zu suchen, deren Basisname mit GLOB übereinstimmt:

# grep --include=GLOB 

40. Um alle Dateien unter jedem Verzeichnis rekursiv zu lesen:

# grep -r PATTERN
# grep -R PATTERN 

41. So verwenden Sie die Zeilenpufferung für die Ausgabe:

# grep --line-buffered PATTERN 

42. Verwenden Sie nach Möglichkeit den mmap-Systemaufruf zum Lesen von Eingaben anstelle des standardmäßigen read:

# grep --mmap PATTERN 

43. Um die Datei(en) als binär zu behandeln:

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

44. So behandeln Sie die Eingabe als eine Reihe von Zeilen:

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

45. So zeigen Sie die Hilfe an:

# grep -h 

46. ​​So drucken Sie die Versionsnummer von grep:

# grep -V 


Linux
  1. Subscription-Manager:Befehl nicht gefunden

  2. dnf:Befehl nicht gefunden

  3. bc:Befehl nicht gefunden

  4. dpkg:Befehl nicht gefunden

  5. id:Befehl nicht gefunden

nc:Befehl nicht gefunden

aws-shell:Befehl nicht gefunden

tvservice:Befehl nicht gefunden

lspci:Befehl nicht gefunden

pstree:Befehl nicht gefunden

ln:Befehl nicht gefunden