On Don, 20 Mär 2003 at 01:01 (+0100), Jan Trippler" wrote: Das Thema ist zwar schon ein paar Tage durch, aber mir ist beim Mailbox-Aufräumen noch was aufgefallen (nur fürs Protokoll):
On Mit, 19 Mär 2003 at 23:31 (+0100), Daniel Lord wrote: [...]
;-----untested--------- #!/bin/bash
for each in *.wav; do OUTPUT=`echo $each | sed 's/.wav/.mp3/g'` [...]
Dieser sed ist höllisch gefährlich: <schnipp> jan@k500:~/tmp> echo "abc wav xyz.wav ..wav" | sed 's/.wav/.mp3/g' abc.mp3 xyz.mp3 ..mp3 jan@k500:~/tmp> echo "new wave.wav" | sed 's/.wav/.mp3/g' new.mp3e.mp3 <schnapp> 2 Fallen: Der Punkt repräsentiert ein beliebiges Zeichen - nicht nur den Punkt. Die /g Option sorgt dafür, dass _jedes_ Aufkommen des Suchmusters ersetzt wird. BTW: Das kann bei der o. g. Konstruktion nicht passieren, weil nur Dateien mit der Endung .wav bearbeitet werden, aber man sollte es im Auge behalten: Das Suchmuster .wav wird auch dann ersetzt, wenn es gar nicht die Dateiendung bildet, weil es nicht nur auf das Ende des Dateinamens passt. Folgendes sed-Argument sollte sicherer sein: <schnipp> jan@k500:~/tmp> echo "abc wav xyz.wav ..wav" | sed 's/\.wav$/\.mp3/' abc wav xyz.wav ..mp3 jan@k500:~/tmp> echo "new wave.wav" | sed 's/\.wav$/\.mp3/' new wave.mp3 jan@k500:~/tmp> echo "new wave.mp3" | sed 's/\.wav$/\.mp3/' new wave.mp3 <schnapp> Jan