Posts Tagged ‘shell’

Shellgefrickel

Wednesday, November 12th, 2008

Als Besitzer eines neuen Mac wollte ich in IPhoto verwenden und habe darin “Ereignisse” ineinander geschoben…

das führte dazu das Bilder, die in beiden “Ereignissen” (am Ende ein Verzeichnis) vorhanden waren, ein “_2″ an den Dateinamen bekamen. Nun hätte per Hand löschen wirklich zu lange gedauert.
Also wollte ich die Konsole bemühen und dachte…

Schön wäre ein

find . -name *_2.jpg | xargs rm

…gewesen.

Leider enthielten die von find gelieferten Pfade aber Leerzeichen. Damit konnte rm dann nichts mehr anfangen.

./Data/2008/04 Rotorua/Picture 157_2.jpg
./Data/2008/04 Rotorua/Picture 158_2.jpg

Die Aufgabe war es nun die von find gelieferten Treffer mit Anführungszeichen zu umschliessen, damit rm diese richtig interpretieren und die Datein löschen kann…

nach ein bisschen gefrickel hat es dieser Command getan;

find . -name *_2.jpg | xargs -0 echo | sed ’s,\(.*\),”\1″,’ | xargs rm

leider ging es in der Mac Konsole nicht ohne das zwischengeschaltete echo wenn ich -0 bei xargs gesetzt habe (siehe unten). Wenn ich find -print0 mitgegeben habe sah es so aus als würde sed die Dateien öffnen und den Inhalt ausgeben.

man xargs:

-0      Change xargs to expect NUL (``\0'') characters as separators,
        instead of spaces and newlines.  This is expected to be used
        in concert with the -print0 function in find(1).