Leerstellen im Dateinamen in Shell Script
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
ahnung
ausgabe
beseitigen
bild
code
dank
dateiname
erweitern
file
filtern
inhalt
jung
leerstelle
maskierung
schleife
shell
tippen
verarbeiten
verzeichnis
windows
-
Hallo,
ich möchte den Inhalt eines Verzeichnis (JPG-Bilder) per Shell Script verarbeiten. Leider sind in den Dateinamen auch Leerstellen drin, was in meinem Code nicht funktioniert. Vielleicht hat ja einer einen Tip für mich.
Hier mein Code
for file in `ls -1b *.jpg`; do file $file; # fuehrt zu einen: No such file or directory, weil der Dateiname zu mehreren Token verlegt wird! ;-( convert -resize 768 $file 'x/'$file; done;
Gruß
Dirk -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
nikic merkst du was ?
Es gibt hier nicht DEN File Namen, weswegen auch eine einfach Maskierung nicht helfen wird.
Die einfachste Variante wäre die Leerzeichen im Dateinamen zu beseitigen. Ansonsten könntest du die Ausgabe von ls erst irgendwie filtern, ich denke daran den Dateinamen in file solange zu erweitern bis der nächste Teilstring sicher nicht mehr zum Dateinamen gehört (z.B. alles was hinter .jpg steht)
-
Hm? Warum gibts keinen Filename? Der müsste doch eigentlich in $file enthalten sein. Ob man einfach "$file" schreiben kann wei ich net.
Oder liest die for-Schleife etwa getrennt nach Leerzeichen, nicht nach Filenames aus? (Obwohl ich eher auf Filenames tippen würde. Die werden doch jeder in einer neuen Zeile ausgegeben und nicht jeder mit nem Leerzeichen getrennt. Aber wie gesagt, KA von Linux ... ) -
Ungefähr so solte es gehen:
find . -name "*.jpg" -exec convert -resize 768 \{\} x/\{\} \;
@nikic: Es ist leider so, dass ein Dateiname mit Leerzeichen durch die for-Schleife in mehrere $file Variablen autgetrennt wird. -
oder so:
#!/bin/sh for file in * do if echo "$file" | grep "\.jpg$" > /dev/null then convert -resize 768 "$file" "x/$file" fi done
-
oder so:
for file in *.jpg do convert -resize 768 "$file" "x/$file" done
Beitrag zuletzt geändert: 30.6.2009 20:18:28 von kochmarkus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage