[linux-l] shell skript probleme mit leerzeichen

willek willek at gmx.de
Do Okt 27 17:42:40 CEST 2005


Jan-Benedict Glaw schrieb:

[Dein skript]
>>Danke, das funktioniert, obwohl ich nicht verstehe warum. Warum reicht
>>in diesen Fall ein Stern aus, um alle Dateien einzulesen?
> Ja.
Naja, das es funktioniert hab ich gemerkt. Warum funktioniert es? Warum
steht der Stern für alle Dateien im aktuellen Verzeichnis, und nicht für
stdin oder weiss der Himmel was?

>>for i in `ls |sed s/" "/"\\ "/g` ; do
>>warum hat das nicht funktioniert?
> Oha... Lieber nicht anfangen, irgendwelche Spezialfälle speziell zu
> behandeln. Was ist, wenn Dateinamen einen Zeilenumbruch beinhalten?
> Maskierst Du den dann auch?

Du hast ja recht. Aber die Frage bleibt: wenn ich die Leerzeichen so
maskieren will, warum funktioniert das nicht? $i sollte doch dann
maskierte Leerzeichen beinhalten, nicht mehr als Trenner benutzbar.
Nur genau das funktioniert nicht, die Leerzeichen werden weiter erkannt.
  Wie gesagt, reine Verständnisfrage.


>>Und wie schaffe ich es beispielsweise, nur Bilddateien konvertieren zu
>>lassen? ...
> Da gibts mehrere Wege. Entweder checkst Du den file type:
> 
> for i in *; do
> 	case `file -b "$i"` in
> 		*image*)
> 			IMAGE_BASENAME="${i%.*}"
> 			convert -resize 640x480 "$i" "verkleinert/${IMAGE_BASENAME}.$1"
> 			;;
> 		*)
> 			:;;
> 	esac
> done

Das ist schön, einfach und nett. Das werde ich erstmal genau so übernehmen.

> Der andere Weg wäre, anhand der Endung vorzusortieren:
> 
> for i in *.jpeg *.jpg *.bmp; do
> 	[ -f "$i" ] && continue
> 	IMAGE_BASENAME="${i%.*}"
> 	convert -resize 640x480 "$i" "verkleinert/${IMAGE_BASENAME}.$1"
> done

Sowas habe ich auch schon überlegt. Nur leider hat nicht jedes File eine
 Endung und überhaupt, was ist mit *.png? --> nicht so flexibel wie
Lösung eins.

>>Skripten ist irgendwie eine Droge... man kommt nich weg davon...
>>und je mehr man konsumiert, umso abhängiger wird man ;-)
> 
> Wenn Du Deine Aufgaben zu 100% gescriptet hast, hast Du 100% Freizeit.
> Sieh das mal so :-)

Na ja, ich meinte eher den Spassfaktor. Die Freizeit hat jetzt ein User,
der um die 300 Bilder *Bild für Bild* in gimp aufgemacht hat,
konvertiert, und unter anderen Namen gespeichert... *grrr

Lutz



Mehr Informationen über die Mailingliste linux-l