我特别需要使用“重命名”从 Linux 文件名中删除第五个字符

我特别需要使用“重命名”从 Linux 文件名中删除第五个字符

我一直在兜圈子!

我特别需要在 Kubuntu linux 中使用“重命名”从文件名中删除第五个字符。

该字符出现在名称中的其他位置,因此搜索该字符将失败。

我见过以下内容:

rename 's/-.*\././' -- *.mp3 *.mp3 

但查帮助rename文件并没有s或其功能描述

谢谢

答案1

rename常用的有两个版本。如果您有perl一个(有时也称为 ) ,则语法使用嵌入到“替换”等操作prename中的正则表达式。perl要删除第五个字符,您需要匹配前四个字符,然后匹配从第六个字符开始的任何剩余字符。

这是一个合适的 RE。第一个括号表达式与可选路径组件匹配。第二个匹配文件名的开头。我们不需要匹配文件名的末尾,也不需要更改其中的任何内容,并且不需要它作为锚点。

^(.*/)?(....).

点对应于“任何字符”。向上箭头绑定到字符串的开头。序列.*意味着“零个或多个字符”。问号允许前面的部分是可选的。括号内的部分可以在匹配部分中重新应用,如$1$2等。

s将其放入与glob 匹配的所有文件的“替换”命令 ( ) 中*.mp3,您将得到以下结果:

rename 's/^(.*/)?(....)./$1$2/' ./*.mp3

相关内容