(Normalerweise würde ich verwenden find ... -print0 | while read -rd "" file, aber es besteht möglicherweise eine Wahrscheinlichkeit von 0,0001%, dass dies notwendig ist, also habe ich aufgehört, mich zu kümmern.)
Dank Grawity funktioniert der erste Vorschlag gut. Gibt es eine Möglichkeit, den Dateinamen zu drucken? Es wird nur die Phrase gedruckt, in der sie gefunden wurde.
Tom
1
@user: Probieren Sie den zweiten Vorschlag aus, der übrigens den Titel "Dadurch wird auch der Dateiname ausgegeben" trägt.
user1686
kann wahrscheinlich ein wenig vereinfachen:find -name \*.doc -exec sh -c "catdoc '{}' | grep -q 'specificword' && echo {}" \;
Glenn Jackman
5
Vielleicht möchten Sie sich recoll ansehen , ein Volltextsuchwerkzeug für Linux- und Unix-Systeme, das viele verschiedene Dokumentformate unterstützt. Es ist jedoch indexbasiert, dh es muss die Dokumente, in denen Sie suchen möchten, vor der eigentlichen Suche indizieren. (Danke an Pabouk für diesen Hinweis).
Es gibt auch eine GUI und eine Kommandozeile.
Weitere Informationen finden Sie in der Dokumentation .
Vielleicht ist es erwähnenswert, dass Recoll eine indizierte Suche bietet. Zuerst muss es die Dokumente indizieren, dann kann es die Indizes durchsuchen.
Antworten:
Verwendung
find
für rekursive Suchen:Dadurch wird auch der Dateiname ausgegeben:
(Normalerweise würde ich verwenden
find ... -print0 | while read -rd "" file
, aber es besteht möglicherweise eine Wahrscheinlichkeit von 0,0001%, dass dies notwendig ist, also habe ich aufgehört, mich zu kümmern.)quelle
find -name \*.doc -exec sh -c "catdoc '{}' | grep -q 'specificword' && echo {}" \;
Vielleicht möchten Sie sich recoll ansehen , ein Volltextsuchwerkzeug für Linux- und Unix-Systeme, das viele verschiedene Dokumentformate unterstützt. Es ist jedoch indexbasiert, dh es muss die Dokumente, in denen Sie suchen möchten, vor der eigentlichen Suche indizieren. (Danke an Pabouk für diesen Hinweis).
Es gibt auch eine GUI und eine Kommandozeile.
Weitere Informationen finden Sie in der Dokumentation .
quelle
Grep sollte binäre Übereinstimmungen finden mit:
quelle