我知道之前有人问过类似的问题,但我找不到讨论要替换的“位置”(1 到 5)的帖子。从存储在一个目录中的文件名中删除多个字符的最佳方法是什么?例如:从“0101 .jpg”到“.jpg”,从“0102 .jpg”到“.jpg”,从“0103 .jpg”到“.jpg”等。
我想将其作为批处理运行。任何帮助都非常感谢。TIA
答案1
要从文件名中删除 x 个字符,您可以使用rename
(it id s perl 命令)和正则表达式:
rename -n 's/.{x}(.*)/$1/' *
其中 x 可以用 5 替换以删除前 5 个字符。
-n 表示模拟;删除它可获得实际结果。
sudo apt install rename
安装它。例子:
$ touch 123456.txt 222222.txt 333333.txt $ rename -n 's/.{5}(.*)/$1/' * rename(123456.txt, 6.txt) rename(222222.txt, 2.txt) rename(333333.txt, 3.txt)
如果你想在前面添加一些内容:
rename -n 's/.{5}(.*)/3333$1/' * rename(123456.txt, 33336.txt) rename(222222.txt, 33332.txt) rename(333333.txt, 33333.txt)