Heim  >  Artikel  >  php教程  >  Leistungsstarker grep-Befehl

Leistungsstarker grep-Befehl

高洛峰
高洛峰Original
2016-12-13 14:46:291927Durchsuche

Es gibt viele Erklärungen zum grep-Befehl im Internet, und sie sind im Grunde eine grobe Übersetzung des man-Befehls. Ehrlich gesagt werde ich es vergessen, nachdem ich es gelesen habe! Persönlich denke ich, dass der beste Weg, Befehle zu lernen, darin besteht, die reale Umgebung zu simulieren, einige Befehlskombinationen aufzuschreiben, die verwendet werden können, und sie dann langsam zu verarbeiten. Zumindest bin ich so hierher gekommen. Am Anfang war es im Wesentlichen reines Auswendiglernen, und dann erweiterte ich langsam meinen Horizont und sammelte mehr. Okay, kommen wir zum Punkt und sprechen über den großartigen grep-Befehl.

grep ist die Abkürzung für General Regular Expression Parser. Wir können es einfach als Suchbefehl im Linux-System verstehen. Gehen wir als Nächstes direkt zum Beispiel über:

1. Suchen Sie nach der angegebenen Zeichenfolge

in der Datei /etc/passwd, Suchzeichenfolge guolei:

grep 'guolei' /etc/passwd

Beachten Sie, dass die Anführungszeichen für guolei weggelassen werden können. Wenn die Suchzeichenfolge jedoch Leerzeichen enthält oder Sie reguläre Ausdrücke verwenden, müssen Sie diese hinzufügen.

2. Suchen Sie nach der angegebenen Zeichenfolge in mehreren Dateien

Suchen Sie im aktuellen Verzeichnis nach Dateien, die die Zeichenfolge guolei enthalten:

grep -r guolei *

Hinweis: -r ist die Abkürzung für rekursiv, was rekursive Suche bedeutet.

Suchen Sie in der .java-Datei im aktuellen Verzeichnis nach Dateien, die die Zeichenfolge guolei enthalten:

grep -r guolei *.java

Manchmal sind unsere Suchergebnisse möglicherweise mehr, wir können sie mit dem Befehl less anzeigen Das Ergebnis ist

grep -r guolei *.java | less

oder es gibt viele Suchergebnisse. Wir müssen nur die Dateinamen auflisten:

grep -rl guolei *.java

Es gibt eine andere Anforderung, die häufiger vorkommt Suchen Sie ein Verzeichnis, das die Datei mit der Zeichenfolge enthält. Beachten Sie, dass der obige Befehl nicht rekursiv durchsucht werden kann. Beispielsweise möchten wir rekursiv nach allen .java-Dateien im aktuellen Verzeichnis suchen, die die Zeichenfolge guolei enthalten:

find . -type f -name *.java -exec grep -il guolei {} \;

3. Ignorieren Sie bei der Suche die Groß-/Kleinschreibung

Ignorieren Sie bei der Suche nach Guolei die Groß-/Kleinschreibung:

grep -ri guolei *

Hinweis: -i ist die Abkürzung für Groß-/Kleinschreibung ignorieren, was Groß-/Kleinschreibung ignorieren bedeutet.

4. Listen Sie die Zeilennummer in den Suchergebnissen auf

Listen Sie in den Suchergebnissen die Zeilennummer auf, in der die Zeichenfolge erscheint:

grep -rn guolei *.java

Beachten Sie, dass -n die Abkürzung für Zahl ist, was Zeilennummer bedeutet.

5. Rückwärtssuche

In der tatsächlichen Entwicklung gibt es eine andere Situation, die häufiger vorkommt. Wir müssen in einem Verzeichnis suchen, das dies tut nicht enthalten Datei einer bestimmten Zeichenfolge:

grep -riv guolei * | less

Hinweis: -v ist die Abkürzung für reverse, was umgekehrt bedeutet. Das obige Beispiel sucht nach Dateien im aktuellen Verzeichnis, die kein Guolei enthalten.

6. Verwenden Sie grep in Pipelines

Wir verwenden grep häufig in Pipeline-Befehlen, dies ist die häufigste. Beispielsweise möchten wir im aktuellen System nach dem MySQL-Prozess suchen:

ps -ef | grep mysql

oder Dateien mit der Endung html im aktuellen Verzeichnis auflisten:

ls | grep 'html$'


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn