Gut, es gibt mc zum suchen von Dateien mit einem bestimmten Inhalt.
Ich möchte aber über die bash rekursiv von "/" eine Dateien finden, die einen bestimmten Inhalt hat.
Jetzt habe ich schon mit ls, cat,grep rumgefummelt und komme aber zu keinem Ergebnis.
Ich habe in zwei Dateien (text-Dateien und auch nur die will ich durchsuchen) mit den Inhalt "hallo ergebnis" .
Wie heisst jetzt die Befehlsreihenfolge, die mir zeigt, in welcher Datei das liegt.
Danke!
Bin ich zu blöd? Datei nach Inhalt suchen
Bin ich zu blöd? Datei nach Inhalt suchen
Gruß Jürgen
_______________________
Rechner: P4 mit Suse 9.2
_______________________
Und versammeln unsere eigene Armee, um diese Massenvernichtungswaffe zu entschärfen, die wir heute noch unseren Präsidenten nennen...
_______________________
Rechner: P4 mit Suse 9.2
_______________________
Und versammeln unsere eigene Armee, um diese Massenvernichtungswaffe zu entschärfen, die wir heute noch unseren Präsidenten nennen...
Die Option -r beim grep war mir eigentlich noch nie geheuer. Ohne es jetzt ausprobiert zu haben: Greppt grep dann nicht auch sinnentleert durch die Gerätedateien unter /dev, so man Lesezugriff darauf hat?
Ausserdem ist der Begriff "Textdatei" etwas vage. Wenn man alle normalen Dateien meint, nun gut. Aber was, wenn man beispielsweise damit nur "Dateien mit Endung .txt" meint? Deswegen tippe ich persönlich lieber etwas mehr und nutze find, xargs und grep:find listet nur normale Dateien auf, -print0 reicht sie durch die Pipe an xargs weiter, der wg. Option -0 erkennt, dass das Null-Byte Trennzeichen für die einzelnen Dateinamen ist und dann die nötigen grep-Kommandos (so wenig wie möglich, so viel wie nötig)zusammenbaut und startet.
Das Schöne an der Lösung ist, dass man durch das find-Kommando sich viel Zeit durch Eingrenzung der Menge möglicher Dateien sparen kann:Jede Menge weitere Möglichkeiten verrät die man-Page zu find.
Jochen
Ausserdem ist der Begriff "Textdatei" etwas vage. Wenn man alle normalen Dateien meint, nun gut. Aber was, wenn man beispielsweise damit nur "Dateien mit Endung .txt" meint? Deswegen tippe ich persönlich lieber etwas mehr und nutze find, xargs und grep:
Code: Select all
find / -type f -print0 | xargs -0 grep "hallo ergebnis"
Das Schöne an der Lösung ist, dass man durch das find-Kommando sich viel Zeit durch Eingrenzung der Menge möglicher Dateien sparen kann:
Code: Select all
find / -name "*.txt" -type f -print0 | xargs -0 grep "hallo ergebnis"
Jochen
Die grösste Lüge der EDV? "Mal eben..."