shell parameter expansion unverstanden

21/06/2009 - 18:28 von Jan-Herbert Damm | Report spam
Hallo,

ich möchte mit folgendem Befehl mehrere Dateien im aktuellen Ordner
umbenennen:

for i in *.alte_endung; do mv $i ${i%.neue_endung}; done

bekomme es aber nicht hin. Hiermit kopiere ich offenbar *.alte_endung auf sich
selbst. Ich denke in diesen Absatz zur parameter expansion müsste die Antwort
stecken, ich seh es aber nicht:

${parameter%word}
${parameter%%word}
The word is expanded to produce a pattern just as in pathname
expansion. If the pattern matches a trailing portion of the
expanded value of parameter, then the result of the expansion is
the expanded value of parameter with the shortest matching pat‐
tern (the ``%'' case) or the longest matching pattern (the
``%%'' case) deleted. If parameter is @ or *, the pattern
removal operation is applied to each positional parameter in
turn, and the expansion is the resultant list. If parameter is
an array variable subscripted with @ or *, the pattern removal
operation is applied to each member of the array in turn, and
the expansion is the resultant list.
-ende zitat-

was mache ich falsch?

Auch ein Verweis auf ein passendes TFM ist mir eine willkommene Hilfe

Danke

jan
 

Lesen sie die antworten

#1 Alexander Bartolich
21/06/2009 - 18:34 | Warnen spam
Jan-Herbert Damm schrieb:
ich möchte mit folgendem Befehl mehrere Dateien im aktuellen Ordner
umbenennen:

for i in *.alte_endung; do mv $i ${i%.neue_endung}; done



for i in *.alte_endung; do mv $i ${i%.alte_endung}.neue_endung; done

seq 100 | sed 's/.*/Romani Ite Domum./'

Ähnliche fragen