linux-suchen Sie mehrere word-Dateien
Ich habe einen Ordner mit einer Reihe von text-Dateien.
-Folder
--- file 1
--- file 2
--- file 3
--- file 4
Habe ich eine Reihe von word, die ich will, um zu überprüfen, ob die drinnen sind. {word1, username, blah blahblah}
Gibt es eine Möglichkeit, auf einem einzigen Befehl ein, um zu entdecken, welche diese Datei enthält alle für das Wort in meiner Liste?
Ich sah, dass es möglich einige und mit grep, aber ich denke, Sie arbeiten auf einer einzigen Linie, während in meinem Fall der wors sind immer auf verschiedenen Linien.
die Anzahl der für word ist statisch. sind immer 3 oder 4, damit bei Bedarf kann ich codieren Sie Sie in der Befehlszeile ein.
EDIT:
Sie sind in UND. eine Datei wird nicht akzeptiert, wenn nicht ALLE von Ihnen im inneren!
ich möchte vermeiden, zu tun
egrep -l 'wort1' .| xargs egrep -l 'wort2'
Gibt es eine bessere Lösung zu nennen grep nur einmal?
Cheers,
Ste
Du musst angemeldet sein, um einen Kommentar abzugeben.
Macht diese Arbeit für Sie?
Den ersten Teil (grep) wird die Liste der Dateinamen mit passendem Muster. Der zweite Teil (sed), ziehen Sie die Duplikate aus der ersten Ausgabe, die nur eindeutige Zeilen. Der Dritte Teil zeigt nur die Datei, die mehr als einmal vorkommt und her, ziehen Sie Ihre Muster abgestimmt und der Letzte wird nur dienen Sie den Namen der Datei, mein Freund.
mein Kopf tut weh jetzt ...
verwenden:
Beispiel:
Verwenden grep:
den
-E
flag setzt grep in 'erweitert' - Modus für reguläre Ausdrücke. Dies wird zeigen standardmäßig den Dateinamen UND den passenden text. Wenn Sie wollen einfach nur mit dem Dateinamen, fügen Sie-l
zu den Optionen.egrep
das ist das gleiche wiegrep -E
und alle anderen Optionen sind die gleichen wiegrep
.Andere Lösung, die funktioniert am besten für eine kleine Menge von Worten:
Den folgenden, wenn Sie wollen, um grep in einem Verzeichnis-Baum
Ich dir auch empfehlen, den Begriff Verzeichnis statt Ordner, wenn Sie auf der Suche nach Antworten über *nix-Systeme 🙂