Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何重命名数字文件的Pyramid_Bash - Fatal编程技术网

Bash 如何重命名数字文件的Pyramid

Bash 如何重命名数字文件的Pyramid,bash,Bash,我的Linux机器上有1000多个文件: somefiletest001.DAT_999 somefiletest001.DAT_1000 somefiletest001.DAT_1000_1001 somefiletest001.DAT_1000_1001_1002 somefiletest001.DAT_1000_1001_1002_1003 我想知道如何将它们重命名为: somefiletest001.DAT_999 somefiletest001.DAT_1000 somefilete

我的Linux机器上有1000多个文件:

somefiletest001.DAT_999
somefiletest001.DAT_1000
somefiletest001.DAT_1000_1001
somefiletest001.DAT_1000_1001_1002
somefiletest001.DAT_1000_1001_1002_1003
我想知道如何将它们重命名为:

somefiletest001.DAT_999
somefiletest001.DAT_1000
somefiletest001.DAT_1001
somefiletest001.DAT_1002
somefiletest001.DAT_1003

我可以一次一个接一个地执行mv命令。有人能告诉我如何做一个简单的bash脚本来重命名这类文件吗?感谢您的帮助。

使用
prename
Perl重命名)命令:


你能告诉我们你试过什么吗?怎么可能?您是否已超过文件名的最大长度?文件名1000将超过5000个字符长。@Inian-我不是Linux用户,我只是想让我的生活更简单。执行
mv somefilenametst001.DAT_1000_1002_1003 somefilenametst001.DAT_1003
命令每个文件都需要时间,我可以将它们放入一个文件中,粘贴每个文件,然后稍后运行。希望你能理解我说的话和我想要实现的目标。谢谢,谢谢@罗曼佩雷赫里斯特。它很有魅力。我必须做
man-prename
才能知道我在做什么。再次感谢您的快速帮助。
prename 's/\.DAT(_.*)?(_[0-9]{4})$/.DAT$2/' *.DAT_*