Hallo, Am Mon, 15 Mär 2010, Ralf Arndt schrieb:
Am Montag 15 März 2010 10:09 schrieb Stefan Plenert:
On Montag, 15. März 2010 00:50:59 Ralf Arndt wrote: David Haller Formel:
for datei in *.tif; do rm -i -f "${datei//%.tif/.jpg}"; done
BTW: das -f scheint das -i zu überschreiben. Ersteres verwende ich schlicht zu selten ;)
stefan@-1c4m:~/01u> for datei in *.tif; do rm -i -f "${datei//%.tif/.jpg}"; done stefan@-1c4m:~/01u> dir insgesamt 79428 31924 1. Mai 2009 p1090037.jpg 79726758 1. Mai 2009 p1090037.mov 355376 24. Dez 19:16 p1180002.jpg 410261 24. Dez 19:23 p1180003.jpg 336896 24. Dez 19:24 p1180004.jpg 361025 25. Dez 10:39 p1180006.jpg stefan@-1c4m:~/01u>
Verwendest du die bash?
Komisch den Effekt habe ich jetzt plötzlich auch. Dabei war ich mir sicher, dass es so bei den ersten Tests funktioniert hat.
Tut hier auch.
Ersetze mal - das doppelte "/" durch ein einfaches
Das doppelte ist schon richtig.
- und für erste Tests "rm -i -f" durch echo also for datei in *.tif; do echo "${datei/%.tif/.jpg}"; done
Das wirft Dir dann alle .jpg Dateien aus, zu denen .tif Dateien existieren. Wenn das funktioniert, kannst Du echo wieder durch den rm Befehl ersetzen.
$ ls *.jpg 1.tif 2.tif 4.jpg 5.mov 7.jpg a b.tif a' b.jpg *.tif 2.jpg 3.jpg 4.tif 6.jpg 7.mov a"b.jpg a' b.tif 1.jpg 2.mov 3.tif 5.jpg 6.mov a b.jpg a"b.tif $ for datei in *.tif; do echo rm -i "${datei//%.tif/.jpg}"; done rm -i *.jpg rm -i 1.jpg rm -i 2.jpg rm -i 3.jpg rm -i 4.jpg rm -i a b.jpg rm -i a"b.jpg rm -i a' b.jpg (wobei 'rm -i' das *.jpg als ein gequotetes Argument bekommt, das wird nicht von der shell expandiert). Achso, per PM kam noch folgendes von Hans Alken: ==== Es sollte aber mindestens 1 .tif Datei da sein:
for datei in *.tif; do echo rm -i -f "${datei//%.tif/.jpg}"; done rm -i -f *.jpg ====
das schlägt allerdings nur zu wenn a) nullglob nicht gesetzt ist und => mit nullglob läuft die Schleife über "null" Elemente, also gar nicht oder b) eine Datei '*.tif' existiert, dann wird eine Datei '*.jpg' gelöscht. Andernfalls kommt schlicht die Fehlermeldung rm: *.jpg: No such file or directory (bzw. die lokale Übersetzung davon), die man getrost ignorieren kann. Stefan, Ralf: Bitte die Ausgabe von: $0 --version zeigen und dann vor der Schleife (mit echo oder rm -i (ohne -f)) ein set -x eingeben. -dnh -- Verstehe hier den Zusammenhang nicht. Oder meinst du, da du mehrere Platten hast, die sich nicht im Gehäuse in die Quere kommen, springen keine Pinguine auf die Windowsplatte und zertrümmern die Fenster mit ihren Watschelbeinchen. -- Thorsten von Plotho-Kettner, hier -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org