重命名数百个文件

重命名数百个文件

我正在使用 Elementary OS(对于任何 UNIX 系统来说仍然很新),并且我的旧硬盘上有数百个文本文件需要排序。所有文本文件都有一个名称,例如;

lua-eng1-6TH4eI8gtf3.txt

我需要一个命令可以删除所有字符中的最后 11 个字符,但仍保留扩展名。环顾四周,我看到了“重命名”命令,但我不确定这是否对我有用。

我可以复制、粘贴然后更改任何内容(例如目录)的命令将是令人惊奇的,并且可以解释所有内容的作用。

答案1

这个命令应该适合你,因为我在一些与你的模式相同的示例文件上测试了它:

rename 's/(.*)(-.{11})\.txt$/$1\.txt/' *

解释:

看这个简单的命令:

rename 's/pattern/result/' filename(s)

模式可以是正则表达式。因此,我们可以采用文本的不同部分(即文件名)。如果你不明白,请谷歌搜索正则表达式。看起来很复杂,但是如果你学会了,那就很简单了。

结果,我去掉第一个括号的内容$1并留下第二个括号,最后添加.txt到它。

重要通知
首先运行带有选项的命令-n -v来看看该命令会做什么。如果结果是您想要的,请不带选项地运行它。所以首先像这样运行它:

$ rename -n -v 's/(.*)(-.{11})\.txt$/$1\.txt/' *
rename(lua - eng1-6TH4eI8gtf3.txt, lua - eng1.txt)
rename(lua - eng2-6TH4eI8gtf4.txt, lua - eng2.txt)
rename(lua - eng4-6TH4eI8gtf5.txt, lua - eng4.txt)

相关内容