hat jetzt zwar nichts mehr mit grep zu tun, aber mit dem skript, was ich schreiben wollte...
hier erstmal das ich bisher habe:
Code:
#!/bin/bash
#script zum konvertieren von m3u-playlisten, windows-verzeichnistrenner "\" werden in "/" umgewandelt.
#aufruf: m3u2linux absoluter_pfad_mit_playlisten
#funtioniert nur bei relativen pfadangaben, welche mit ./ oder ../ beginnen
#temporäre dateien
todo=/tmp/m3u2linux.todo
convert=/tmp/m3u2linux.convert
#prüfen, ob der angegebene pfad existiert
if [ -d "$1" ]; then
#alle m3u listen in dem angegebenen verzeichnis erfassen und zwischenspeichern
#leerzeichen durch \leerzeichen ersetzen
ls $1 | grep \.m3u | sed -e 's/\ /\\\ /g' > $todo
for line in $(cat $todo); do
echo "konvertiere $1$line"
sed -e 's/\\/\//g' $1$line > $convert
#prüfen, ob rückgabewert ok ist (ob erfolgreich)
if [ "$?" = "0" ]; then
#datei zurückkopieren
mv $convert $1$line
else
echo "Fehler bei $1$line"
exit 1
fi
done
fi
exit 0
das problem ist, das beim aufruf der schleife in $line nicht die zeilen der datei gespeichert werden, sondern die wörter (durch leerzeichen getrennt)... obwohl beim aufruf von cat doch immer zeilen ausgegeben werden...
wie würdet ihr das lösen?
Lesezeichen