Tôi đang cố gắng truyền một lệnh sed trên một vài dòng trong một tệp bash. Tôi có nhiều mẫu mà sed kiểm tra và tôi hy vọng sẽ tách một số mẫu bằng một thay đổi dòng. Đây là kịch bản hiện tại của tôi không hoạt động, đặt tất cả mọi thứ trên một dòng hoạt động nhưng tôi đã hy vọng chỉ cần làm sạch nó lên một chút và chia nhỏ mọi thứ.Truyền lệnh 'sed' qua nhiều dòng
#!/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
Cảm ơn bạn đã được trợ giúp!
"Không hoạt động" có nghĩa là gì? Bạn có nhận được một thông báo lỗi? Nó là gì? Sản lượng có khác với những gì bạn mong đợi không? Bằng cách nào? Nó không phải là cần thiết để thoát khỏi không gian và dấu gạch nối theo cách bạn có. –