如何快速重命名文件夹中的一堆文件

时间:2010-01-28 18:23:47

标签: unix rename batch-rename

我有一堆名为'something_12345.doc'的文件(任何5位数字,不一定是12345)。我需要将它们全部重命名为'something.doc'。这是一个Unix文件系统,我怀疑只用一个命令就可以做到这一点......任何Unix正则表达式大师都能帮忙吗?

谢谢!

6 个答案:

答案 0 :(得分:3)

@OP,shell已经为你扩展了你的模式,在你的mv语句中,你不必再指定5位数的模式。

for file in *_[0-9][0-9][0-9][0-9][0-9].doc
do
  echo mv "$file" "${file%_*}.doc"
done

答案 1 :(得分:3)

答案 2 :(得分:2)

rename 's/_[0-9][0-9][0-9][0-9][0-9]//' *.doc

答案 3 :(得分:1)

使用sed

ls *.doc | sed 's:\([^0-9_]\)[0-9_][0-9_]*\.doc:$(mv & \1.doc)' | /bin/bash

答案 4 :(得分:0)

是的,rename采用perl样式的正则表达式。做一个man rename

答案 5 :(得分:0)

在FreeBSD上,您可能对sysutils / renameutils端口感兴趣。命令qmv打开$ EDITOR,允许您在合理舒适的环境中指定所有文件重命名。我个人更喜欢qmv -fdo(单列)格式。