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

Mehrere Muster (Wörter) mit ack suchen?

Für ag , ab Version 0.19.2 wird standardmäßig in Verzeichnissen und Dateien rekursiv gesucht.

Um nach mehreren Mustern zu suchen, können Sie eine ähnliche Syntax wie ack verwenden

ag 'pattern1|pattern2'

wird sowohl nach pattern1 suchen und pattern2 .

Falls Sie nicht rekursiv suchen möchten, können Sie die Suchtiefe mit dem Schalter --depth NUM auf 1 setzen

Daher

ag 'pattern1|pattern2' --depth 1

sucht nur im aktuellen Verzeichnis nach beiden Mustern.


Das sollte reichen:

ack -R 'string1|string2'

Als -R ist der Standardwert, Sie können ihn weglassen:

ack 'string1|string2'

Ab man ack :

-r , -R , --recurse

Rekursion in Unterverzeichnisse. Dies ist die Standardeinstellung und dient lediglich der Kompatibilität mit grep. Sie können es auch verwenden, um --no-recurseoff auszuschalten.

Wenn Sie das Muster aus einer Datei erhalten möchten, sagen Sie /path/to/patterns.file, können Sie Folgendes verwenden:

ack "$(cat /path/to/patterns.file)"

oder gleichwertig:

ack "$(< /path/to/patterns.file)"

Ich kann kein genaues Äquivalent zu grep -f finden .


Der ack-Befehl kann auch mit Pipes verknüpft werden. Zum Beispiel findet der erste ack Dateien, die pattern1 enthalten Dann leiten Sie das an eine andere Bestätigung weiter, um nur diese Dateien nach Muster2 zu durchsuchen

ack -l 'pattern1' | ack -x 'pattern2'

Das -l Parameter bedeutet, dass nur die übereinstimmenden Dateien (anstelle des übereinstimmenden Textes) aufgelistet werden. Das -x Parameter bedeutet, dass nur die an ihn geleiteten Dateien durchsucht werden. Dies ähnelt dem Eingrenzen der Dateien für die nächste Ack-Suche.

ack -l 'pattern1' | ack -xl 'pattern2' | ack -x 'pattern3'

Dies ist ein UND -Operator und nicht der OR-Operator, der in den anderen Lösungen angegeben ist.


Linux
  1. Verwalten Sie mehrere Dienstinstanzen mit systemctl

  2. Wie werden Groß- und Kleinschreibungsmuster mit Ls abgeglichen?

  3. Mit Gui nach Dateien suchen?

  4. Sortieren mehrerer Schlüssel mit Unix-Sortierung

  5. Systemd mit mehreren execStart

So finden Sie Dateien in Linux mit dem Find-Befehl

Wie man nach mehreren Zeichenfolgen und Mustern grep

So verwalten Sie mehrere Java-Versionen mit jEnv unter Linux

So installieren und verwenden Sie den Ack-Befehl unter Linux mit Beispielen

Linux-Suche nach Zeichenfolgen in Ordnern und Dateien mit ack

So durchsuchen Sie LDAP mit ldapsearch (mit Beispielen)