【发布时间】:2015-08-07 13:34:21
【问题描述】:
我有这样的文件:
foo_bar_hfh4.ext
foobar_bar_2fr4.ext
foobar_foobar_5ytu.ext
foobarfoobar_foobar_rtnm.ext
等等
我的问题是如何从每个名称中删除最后 5 个(或 n 个)字符,保留扩展名。每个文件的字符数总是不同的,所以不能从左到右查找。
_ 字符总是出现两次,是我需要删除的 5 个字符系列中的第一个字符。要删除的字符中没有其他模式。
我知道 Thunar Bulk Rename 可以在 gui 中轻松完成此操作。但是 BASH 呢?
【问题讨论】:
-
rename 's/.{5}(\.[^.]*)$/$1/' * -
你能添加你的代码吗?
-
太棒了。就是这样做的。谢谢 anishsane。
-
我对您的代码做了一个小改动:重命名 's/.{5}(\.[^.]*)$/$1/' *.ext 以便只有 .ext 文件受影响(同一目录下还有其他文件;忘了提及)