Supportnet / Forum / Linux
Dateien mit BESTIMMTEN Inhalt kopieren oder verschieben
Frage
Hallo zusammen,
ich habe folgendes Problem: Ich möchte mit Hilfe eines Scriptes Dateien aus einem Ordner in einen Unterordner verschieben die einen bestimmten (als Suchkriterium) Inhalt haben. Das heist, alle Dateien die im Inhalt "Anfrage" haben, sollen nach /Anfragen verschoben werden.
Wie ich die Dateien finde (mit grep 'Anfrage' *) weiß ich - aber da wird mir ja die Zeile aus der Datei angezeigt und nicht der Dateiname - wollte nämlich nach dem grep eine Pipe und dann mv machen - hihi - naja das hat natürlich nicht geklappt.
Also wenn da jemand ne Idee hätte......
Vielen Dank schon mal
Antwort 1 von Randolf
Ich schlage ls mit Umleitung vor.
Antwort 2 von chemuser
Hallo,
man grep ist dein Freund ! Hier ein Ausschnitt:
Vorschlag für "Script" (ohne Garantie):
man grep ist dein Freund ! Hier ein Ausschnitt:
Zitat:
-L, --files-without-match
Statt der normalen Ausgabe wird der Name jeder Datei ohne Treffer
angezeigt. Die Suche endet in jeder Datei beim ersten Treffer.
-l, --files-with-matches
Statt der normalen Ausgabe wird der Name jeder Datei mit mindestens
einem Treffer angezeigt. Die Suche endet in jeder Datei
beim ersten Treffer.
-L, --files-without-match
Statt der normalen Ausgabe wird der Name jeder Datei ohne Treffer
angezeigt. Die Suche endet in jeder Datei beim ersten Treffer.
-l, --files-with-matches
Statt der normalen Ausgabe wird der Name jeder Datei mit mindestens
einem Treffer angezeigt. Die Suche endet in jeder Datei
beim ersten Treffer.
Vorschlag für "Script" (ohne Garantie):
for $a in $(grep -l "Anfrage" *); do mv $a ./Anfrage; doneAntwort 3 von linuxloob
So, nun mein 2. Versuch - beim ersten hats meine Antwort irgendwie net übernommen..... :o(
@chemuser Danke - bin inzwischen auch auf diese Art der Problemlösung gekommen. Hatte auch erst ziemlich lange mit ls versucht - und bin dann erst später auf den Parameter -l vom grep gestossen.
habe es folgendermaßen ins script geschrieben:
i=`grep -l 'Subject: Anfrage' *`
mv $i Anfragen/
Danke an alle und frohe Weihnachten zusammen.
@chemuser Danke - bin inzwischen auch auf diese Art der Problemlösung gekommen. Hatte auch erst ziemlich lange mit ls versucht - und bin dann erst später auf den Parameter -l vom grep gestossen.
habe es folgendermaßen ins script geschrieben:
i=`grep -l 'Subject: Anfrage' *`
mv $i Anfragen/
Danke an alle und frohe Weihnachten zusammen.

