On Donnerstag, 18. März 2010 09:04:53 Ralf Arndt wrote:
Am Mittwoch 17 März 2010 23:03 schrieb Stefan Plenert:
for datei in *.tif; do echo rm -i "${datei//%.tif/.jpg}"; done for datei in *.tif; do echo rm -i "${datei/%.tif/.jpg}"; done
for i in *.tif; do echo rm -i "${i//%.tif/.jpg}"; done for i in *.tif; do echo rm -i "${i/%.tif/.jpg}"; done for i in *.tif; do echo rm "${i/%.tif/.jpg}"; done
Hi Stefan,
Ich schrieb in meiner vorherigen Mail auch "ersetzen" und nicht "hinzufügen". Du solltest also
_entweder_ das echo verwenden um in der Ausgabe sehen zu können, was der schöne Ausdruck "${i/%.tif/.jpg}" als Ergebnis liefert,
_oder_ den rm Befehl verwenden um zu löschen. Dabei ist das "-i" eine Option für rm.
In Deiner Kombination kann das nicht funktionieren.
Zum Verständnis:
echo gibt eine Textzeile aus
rm löscht je nach Optionen Dateien und/oder Verzeichnisse.
Hier ein Beispiel:
1. Welche Dateien habe ich? ralf@host:~/Test/jpgtest> ll insgesamt 0 -rw-r--r-- 1 ralf users 0 15. Mär 13:55 xyz.jpg -rw-r--r-- 1 ralf users 0 15. Mär 13:55 xyz.tif
2. Welches Ergebnis lifert mir der schöne Ausdruck ralf@host:~/Test/jpgtest> for datei in *.tif; do echo "${datei/%.tif/.jpg}"; done xyz.jpg
3. Die vorige Aktion hat noch nichts verändert: ralf@host:~/Test/jpgtest> ll insgesamt 0 -rw-r--r-- 1 ralf users 0 15. Mär 13:55 xyz.jpg -rw-r--r-- 1 ralf users 0 15. Mär 13:55 xyz.tif
4. Das sah oben gut aus, also lösche ich jetzt ralf@host:~/Test/jpgtest> for datei in *.tif; do rm -i "${datei/%.tif/.jpg}"; done rm: reguläre leere Datei „xyz.jpg“ entfernen? y
5. Es bleibt nur die tif Datei über ralf@host:~/Test/jpgtest> ll insgesamt 0 -rw-r--r-- 1 ralf users 0 15. Mär 13:55 xyz.tif
lg Ralf
Ralf darum ging es mir gar nicht! Es war soviel Fachgesimpel in dem Forum, so dass ich mir nur die Formelvorschläge raussuchte und es selbs an den Vorschlägen versuchte. Woran liegts? / Was funktioniert? // oder / datei oder i rm, rm -i, rm -i -f, rm -i -f -- Welche Lösung ist die beste für mich? Habe mich für Christian Brabant entschieden Datum: 15.03.2010 / 20:11 Das könnte ein Bug in der bash sein: Das hier funktioniert nicht wie gewünscht for i in *.tif; do rm -i -f -- "${i//%.tif/.jpg}"; done während das hier funktioniert: for i in *.tif; do rm -i -f -- "${i/%.tif/.jpg}"; done alias jpti='for i in *.tif; do rm -i -f -- "${i/%.tif/.jpg}"; done' obwohl -f -- nicht notwendig ist, habe ich die Formel komplett übernommen. In der anderen Mail siehste noch mal alles. mfg Stefan ------------ -- 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