tobsi224
Goto Top

Bash - Grep Dateien Löschen

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

Content-Key: 139006

Url: https://administrator.de/contentid/139006

Printed on: April 19, 2024 at 09:04 o'clock

Member: perseues
perseues Mar 24, 2010 at 08:44:21 (UTC)
Goto Top
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
Member: Raven42
Raven42 Mar 24, 2010 at 14:34:11 (UTC)
Goto Top
Da die Klammern von der Shell interpretiert werden, musst Du sie mit einem Backslash verstecken:

rm *\(*\)*
Member: tobsi224
tobsi224 Mar 24, 2010 at 15:04:21 (UTC)
Goto Top
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