从文件名中删除破折号

从文件名中删除破折号

这将删除文件名中的空格。

我怎样才能删除破折号 - ?

rename "s/ //g" *

答案1

rename在 Ubuntu 中有一个perl工具,它使用perl句法

s/regex/replacement/modifiers

就你的情况而言:

  • 正则表达式是一个空格(你想要替换的内容)
  • 替代品为空(你想用空内容替换)
  • 修饰符g(第一次正则表达式匹配后不要停止)

因此,您需要了解如何编辑正则表达式以匹配破折号:

只需使用它即可删除破折号:

rename 's/-//g' *

但如果你想删除破折号和空格,你可以使用字符类

所以这将为你做到这一点:

rename 's/[- ]//g' *

请注意,当任何文件名以 开头时-,它将不起作用。请参阅@BillPoser 的回答

答案2

rename 's/-//g' *

当任何文件名以破折号开头时,它不起作用,因为它会被解释为启动一个选项。您需要使用 -- 标志来终止选项字符串:

rename -- 's/-//g' *

相关内容