Wie prüfen Sie eine Datei, die zwei oder mehr Ausdrücke / Wörter enthält?

1701
hobbes3

Wie können Sie acknach einer Datei suchen, die z. B. Folgendes enthält:

  1. Katze
  2. Hund
  3. Maus

irgendwo in der Datei? Jede Phrase kommt mindestens einmal in der Datei vor.

Dies ist wie das Verhalten einer Online-Suchmaschine.

Bonus:

  1. Können wir Regex auch für diese einzelne Phrase verwenden?
  2. Oder vielleicht mindestens erklären, wie oft ein Satz vorkommen muss?
6

2 Antworten auf die Frage

6
kirkbauer

This should do the trick: perform first ack, get file list, look for second set of files.

ack phrase2 `ack -l phrase1` 
4
Andy Lester

@kirkbauer schlug vor

ack phrase2 `ack -l phrase1` 

und das wird tatsächlich funktionieren. Ich ziehe es vor, die $()Syntax anstelle von `` `zu verwenden

ack phrase2 $(ack -l phrase1) 

Mit dem Release von ack 2.0 erhalten Sie den -xSchalter, damit Sie Folgendes tun können:

ack -l phrase1 | ack -x phrase2 

Der -xBefehl weist an, die Liste der Dateien zu übernehmen, die von STDIN gelesen werden sollen.