Ich versuche, einen sed Befehl über mehrere Zeilen in einer Bash-Datei zu verbreiten. Ich habe mehrere Muster, nach denen sed sucht, und ich hoffe, einige der Muster durch eine Linienänderung zu trennen. Hier ist mein aktuelles Skript, das nicht funktioniert, alles auf einer Zeile funktioniert, aber ich hatte gehofft, es einfach ein wenig aufzuräumen und die Dinge aufzuteilen.Spread 'Sed' Befehl über mehrere Zeilen
#!/bin/sh -f
#files=$(ls -1 | egrep '.avi|.mkv');
#echo $files
for f in *.mkv *.avi;
do
renF=`echo $f | tr '.' ' ' | sed -e 's/ \([^ ]*\)$/.\1/; s/\ \[sharethefiles\ com\]//i' \
-e 's/\ x264\-Ctu//i; s/\ x264\-Bia//i; s/\ x264\-Fov//i' \
-e 's/\ Xvid\-Lol//i; s/\ Xvid\-Xor//i; s/\ Xvid\-Notv//i; s/\ Xvid\-Fqm//i; s/\ Xvid\-p0w4//i; Xvid\-BIA//i; s/\ Xvid\-Chgrp//i; s/\ Xvid\-Fov//i' \
-e 's/\ PDTV\-Fov//i; s/\ PDTV\-River//i; s/\ PDTV\-Sfm' \
-e 's/\ Dts\-Chd//i; s/\ WEB\-DL//i; s/\ H264\-SURFER//i' \
-e 's/\ Dsr//; s/\ WS//i; s/\ PDTV//i; s/\ X264//i; s/\ Blu\-Ray//; s/\ Bdrip//i; s/\ Bluray//i; s/\ HDTV//i; s/\ DTS//i; s/\ AC3//i; s/\ Dd5//i; s/\ Dualaudio//i; s/\ AAC2//i; s/\ XVID//i'`
#echo $renF
if [ "$f" == "$renF" ]; then
echo "FileName already cleaned."
else
mv "$f" "$renF"
fi
done
Danke für jede Hilfe!
Was bedeutet "nicht funktioniert" bedeuten? Erhalten Sie eine Fehlermeldung? Was ist es? Unterscheidet sich die Ausgabe von dem, was Sie erwarten? Inwiefern? Es sollte nicht notwendig sein, den Leerstellen und Bindestrichen auf die gleiche Weise zu entkommen. –