Liste von Dateien löschen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Homer
Beiträge: 126
Registriert: 25.10.2002 16:30:28
Wohnort: Karlsruhe

Liste von Dateien löschen

Beitrag von Homer » 09.10.2006 00:18:34

Hallo zusammen,

ich habe in einer Datei irgendwas.txt eine Liste von Dateien drin stehen, die ich löschen möchte. Pro Zeile ist jeweils eine Datei aufgeführt. Wie lautet der rm Aufruf hierzu? Oder muss ich ein Skript bauen? Falls ja, wie könnte es aussehen?
Danke!

Ciao
Homer
"Sie können auch Ihr Geld aus dem Windows rauswerfen"

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 09.10.2006 00:21:45

z.B. mit xargs
MfG GoKi
:wq

Benutzeravatar
Homer
Beiträge: 126
Registriert: 25.10.2002 16:30:28
Wohnort: Karlsruhe

Beitrag von Homer » 09.10.2006 00:47:48

Ah ja, gut stimmt. Habs mal so ausprobiert:

Code: Alles auswählen

cat dateiliste.txt|xargs -i -t rm {}
Leider ist aber die Datei unter Windows erstellt und nun erscheinen auf der Konsole die Dateinamen (natürlich ohne Backslashes vor Klammern und ähnlichem und auch nicht in Anführungszeichen bei Dateinamen mit Leerzeichen) mit einem nachfolgenenden \r.
Ich habe die Datei mit Kate geöffnet und wieder als Unixfile mit entsprechender Carriage Return Codierung abgespeichert, hat aber nichts geändert. Wie kann es dennoch klappen?

Danke!

Ciao
Homer
"Sie können auch Ihr Geld aus dem Windows rauswerfen"

comes
Beiträge: 2702
Registriert: 11.03.2005 07:33:30
Wohnort: /dev/null
Kontaktdaten:

Beitrag von comes » 09.10.2006 08:16:07

Code: Alles auswählen

rm -rf $(cat dateiliste.txt)
würde ich machen. frag mir aber nicht, wie du die "" davor bekommst
grüße, comes

Faschismus ist keine Meinung, sondern ein Verbrechen!
http://sourcewars.de

Benutzeravatar
markus_b
Beiträge: 355
Registriert: 26.01.2006 04:57:18
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von markus_b » 09.10.2006 18:17:18

Also das Problem mit den Leerzeichen in den Dateinamen kann man umgehen in dem man die IFS Variable auf "newline" setzt:

Code: Alles auswählen

export IFS="
"
Das ist aber immer nur ein temporärer Hack, da manch andere Programme das gar nicht mögen...

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 09.10.2006 21:00:51

Homer hat geschrieben:Leider ist aber die Datei unter Windows erstellt und nun erscheinen auf der Konsole die Dateinamen (natürlich ohne Backslashes vor Klammern und ähnlichem und auch nicht in Anführungszeichen bei Dateinamen mit Leerzeichen) mit einem nachfolgenenden \r.

Code: Alles auswählen

aptitude install tofrodos # oder apt-get
dos2unix Dateiliste
xargs -d\n rm < Dateiliste

Benutzeravatar
Homer
Beiträge: 126
Registriert: 25.10.2002 16:30:28
Wohnort: Karlsruhe

Beitrag von Homer » 10.10.2006 07:48:44

Hallo zusammen!

Danke für Eure Tipps!

So hats geklappt:

Code: Alles auswählen

dos2unix dateiliste.txt
cat dateiliste.txt|xargs -i -t rm {} 
Danke nochmal an alle! :D

Ciao
Homer
"Sie können auch Ihr Geld aus dem Windows rauswerfen"

Antworten