gelöst Bash - Grep Dateien Löschen

Mitglied: tobsi224

tobsi224 (Level 1)

24.03.2010 um 08:17 Uhr, 7485 Aufrufe, 3 Kommentare

Hallo ihr,

ich habe mal wieder ein kleines problem. Und zwar habe ich einen Ordner in dem mehrere Dateien abgelegt werden nur das dumme ist manchmal kommen zwei mal die gleichen rein diese werden dann wie folgt durchnummeriert:
datei
datei(1)
datei(2)
...
Nun möchte ich die Duplikate löschen. Hierzu habe ich mir erst mal einen befehl zusammengebastelt der die dateien herausfiltert. Sieht dann so aus:

ls | grep "(*)"

So nun zu meinem problem. Wenn ich das ganze nun löschen will habe ich mir mal diesen befehl aus den Fingern gesaugt:

rm $(ls | grep "(*)")

Nur das dumme ist er interpretiert jedes einzelne wort als Datei. Also z.b. hallo welt.txt würde er dann versuchen Hallo zu löschen welt zu löschen und .txt zu löschen und das ist ja nicht das was ich will. Wie kann ich das machen?


MFG

Tobi
Mitglied: perseues
24.03.2010 um 09:44 Uhr
ich würde es mit den Hashwerten versuchen, da denen der Name egal ist. Hier gibt es einen Ubuntu Thread mit einem Perl Script.

Grüße p

P.S: Geht mit md5sum und der Konsole bestimmt auch
Mitglied: Raven42
24.03.2010 um 15:34 Uhr
Da die Klammern von der Shell interpretiert werden, musst Du sie mit einem Backslash verstecken:

01.
rm *\(*\)*
Mitglied: tobsi224
24.03.2010 um 16:04 Uhr
Hallo,

erstmal danke für eure antworten. Ich habe das nun wie folgt gelöst:

find /Ordner/der/durchsucht/werden/soll/ -name "*([1-9]).mp3" -exec rm {} \;

ich habe die lösung von Raven42 jetzt nicht ausprobiert. Aber danke für deinen vorschlag


MFG

Tobi
Titel: Bash - Grep Dateien Löschen
Content-ID: 139006
Art des Inhalts: Frage
Ausgedruckt am: 15.09.2019 um 16:02:00 Uhr
URL: https://administrator.de/contentid/139006