重命名多个文件 - LINUX / Ubuntu的(Rename multiple files -

2019-09-18 00:49发布

我需要删除的图像文件“_1331045422”在我的目录中。

对于例如,我的图像文件名看起来像: 消息16 error_1331045422.png

我居然跑其重命名所有的图像文件这样的脚本。 我也有其他文件(用正确的名称图像文件,js文件和css等具有正确的名称)

请帮我用命令将所有图像文件与“_1331045422”重命名,而不会影响其他人。

编辑:我不仅有错误的文件名.png文件。 有GIF和JPEG了。

Answer 1:

您可以使用重命名命令:

rename 's/_\d+(\..{1,3})/$1/g' *

你可以改变之间{}如果你有文件与扩展名超过三个字符长的范围内。

要当心一些系统上的重命名命令是一个有点不同。 看看这里: https://superuser.com/questions/70217/is-there-a-linux-command-like-mv-but-with-regex



Answer 2:

让你的文件的备份试图在此之前!

#!/bin/bash
for i in *.png; 
    do mv $i `echo $i | sed  "s/_[0-9]\+\.png^/\.png/"`
done


Answer 3:

#!/usr/bin/python
# message-16-error_1331045422.png --> message-16-error.png
# Usage: python foo.py dir_to_change
import os, sys
dir=sys.argv[1]
for file in os.listdir(dir):
    if not file.endswith('.png'):
        continue
    new, end = file.rsplit('_', 1)
    new=u'%s.png' % new
    file_old=os.path.join(dir, file)
    file_new=os.path.join(dir, new)
    os.rename(file_old, file_new)


Answer 4:

随着RNM :

rnm -rs '/_\d+(\.)(png|gif|jpg|jpeg)/\1\2/' *

更多的例子在这里 。



文章来源: Rename multiple files - linux/ubuntu