如何截断目录中所有文件的最后两个字符?

时间:2017-09-13 19:17:52

标签: bash file unix directory rename

这么简单的问题。我目录中的所有文件都是6bfefb348d746eca288c6d62f6ebec04_0.jpg形式。我希望它们看起来像6bfefb348d746eca288c6d62f6ebec04.jpg。基本上,我想在每个文件名的末尾取消_0。我怎么用bash来做这个呢?

1 个答案:

答案 0 :(得分:4)

使用Perl的独立重命名命令:

rename -n 's/..(\....)$/$1/' *

如果一切正常,请删除-n

可以使用此独立rename命令,其语法类似于sed' s s/regexp/replacement/命令。在正则表达式中,.匹配一个字符。 \.匹配.$匹配行尾(此处为文件名结尾)。 ()是正则表达式中的特殊字符,用于标记子表达式(此处为.和文件名末尾的三个字符),然后可以使用$1重复使用。 sed使用\1进行首次反向引用,重命名使用$1

请参阅:Back-references and Subexpressions with sed