我一直在尝试使用util-linux版本的rename(2011)来将所有文件中的特定字符串替换为另一个。虽然我知道perl版本的rename可以提供解决方案,但我不知道如何使用这个版本的rename。
具体示例是一组文件(something--2013.mkv,somethingelse--2011.mkv),我正在尝试删除双破折号并用空格替换。
具体示例是一组文件(something--2013.mkv,somethingelse--2011.mkv),我正在尝试删除双破折号并用空格替换。
rename
使用getopt
进行参数解析,因此对双破折号(--
)有特殊解释。 --
表示参数的结尾。--
是一种解决方法。一种方法是将您的命令分成子目标,例如将单破折号翻译为下划线,然后再将两个下划线翻译为单破折号:$ rename - _ *.mkv
$ rename __ - *.mkv
更直接的方法是实际使用 getopt
行为。
$ rename -- -- - *.mkv
/usr/bin/rename.ul
。因此,您可以使用rename.ul
命令。mkdir TEMP
numbers=2011
find . -name "*.mkv" | while read filename
do
echo mv "$filename" "TEMP/somethingelse_"$((numbers++)).mkv
rm filename
done
rename 's/--/\ \ /' *.mp4
- neeru--
。 - jackrabbit