Dateien mit BESTIMMTEN Inhalt kopieren oder verschieben
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 schreiben
Antwort 1 von Randolf vom 27.11.2019, 15:33 Options
Ich schlage ls mit Umleitung vor.
Antwort 2 von chemuser vom 12.12.2019, 00:38 Options
Hallo,
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.
Vorschlag für "Script" (ohne Garantie):
for $a in $(grep -l "Anfrage" *); do mv $a ./Anfrage; done
Antwort 3 von linuxloob vom 19.12.2019, 08:21 Options
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.