我一直试图使用util版本的rename (2011)替换所有文件中的特定字符串。虽然我意识到perl版本的rename会提供一个解决方案,但我不知道如何使用这个版本的rename。
具体的例子是一组文件(某样东西-2013.mkv,某样东西-2011.mkv),我正在尝试删除双破折号并替换为一个空格。
发布于 2014-02-16 07:33:29
问题是rename使用getopt进行参数解析,因此对双破折号(--)有一个特殊的解释。--表示参数的结束。
一个解决方案是避免在命令中使用--。一种方法是将命令分解为子目标,例如将单个破折号转换为下划线,然后将两个下划线转换为单个破折号:
$ rename - _ *.mkv
$ rename __ - *.mkv一种不那么迂回的方法是实际使用getopt行为
$ rename -- -- - *.mkv发布于 2021-04-23 08:30:33
来自util的重命名在Ubuntu中的/usr/bin/rename.ul中。所以您可以使用rename.ul命令。
发布于 2014-02-16 06:49:42
mkdir TEMP
numbers=2011
find . -name "*.mkv" | while read filename
do
echo mv "$filename" "TEMP/somethingelse_"$((numbers++)).mkv
rm filename
donehttps://stackoverflow.com/questions/21808180
复制相似问题