我一直在兜圈子!
我特别需要在 Kubuntu linux 中使用“重命名”从文件名中删除第五个字符。
该字符出现在名称中的其他位置,因此搜索该字符将失败。
我见过以下内容:
rename 's/-.*\././' -- *.mp3 *.mp3
但查帮助rename
文件并没有s
或其功能描述
谢谢
答案1
rename
常用的有两个版本。如果您有perl
一个(有时也称为 ) ,则语法使用嵌入到“替换”等操作prename
中的正则表达式。perl
要删除第五个字符,您需要匹配前四个字符,然后匹配从第六个字符开始的任何剩余字符。
这是一个合适的 RE。第一个括号表达式与可选路径组件匹配。第二个匹配文件名的开头。我们不需要匹配文件名的末尾,也不需要更改其中的任何内容,并且不需要它作为锚点。
^(.*/)?(....).
点对应于“任何字符”。向上箭头绑定到字符串的开头。序列.*
意味着“零个或多个字符”。问号允许前面的部分是可选的。括号内的部分可以在匹配部分中重新应用,如$1
、$2
等。
s
将其放入与glob 匹配的所有文件的“替换”命令 ( ) 中*.mp3
,您将得到以下结果:
rename 's/^(.*/)?(....)./$1$2/' ./*.mp3