Estoy tratando de extender un comando sed sobre varias líneas en un archivo bash. Tengo varios patrones que requieren verificación y espero separar algunos de los patrones mediante un cambio de línea. Aquí está mi script actual que no funciona, poner todo en una línea funciona, pero esperaba simplemente limpiarlo un poco y dividir las cosas.Separar el comando 'sed' sobre múltiples líneas
#!/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
¡Gracias por la ayuda!
¿Qué significa "no funciona" significa? ¿Recibes un mensaje de error? ¿Qué es? ¿El resultado difiere de lo esperado? ¿En qué manera? No debería ser necesario escapar de los espacios y guiones de la manera que tiene. –