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-ID: 139006

Url: https://administrator.de/forum/bash-grep-dateien-loeschen-139006.html

Ausgedruckt am: 23.12.2024 um 14:12 Uhr

perseues
perseues 24.03.2010 um 09:44:21 Uhr
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
Raven42
Raven42 24.03.2010 um 15:34:11 Uhr
Goto Top
Da die Klammern von der Shell interpretiert werden, musst Du sie mit einem Backslash verstecken:

rm *\(*\)*
tobsi224
tobsi224 24.03.2010 um 16:04:21 Uhr
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