从Linux中的多个文件名中删除“ -template”部分

时间:2018-09-05 09:01:50

标签: linux bash pattern-matching rename filenames

我有些文件的名称如下:

jcr-repository-template.xml
imapserver-template.xml

,我想将它们重命名为:

jcr-repository.xml
imapserver.xml.

我尝试使用find -name "*-template.*" -exec rename -v "template" "" {} ";"

它起作用了,但是我只匹配了“模板”而不是“ -template”(我找不到方法)。因此,现在每个文件名的末尾都有一个破折号。有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

在许多命令中,选项--可用于指示我可以测试且有效的选项的结尾:

touch imapserver-template.xml
rename -v -- -template '' imapserver-template.xml

否则,另一种解决方案可以是使用不以-开头的等效正则表达式模式

rename -v '(?:-template)' '' imapserver-template.xml