我需要删除的图像文件“_1331045422”在我的目录中。
对于例如,我的图像文件名看起来像: 消息16 error_1331045422.png
我居然跑其重命名所有的图像文件这样的脚本。 我也有其他文件(用正确的名称图像文件,js文件和css等具有正确的名称)
请帮我用命令将所有图像文件与“_1331045422”重命名,而不会影响其他人。
编辑:我不仅有错误的文件名.png文件。 有GIF和JPEG了。
我需要删除的图像文件“_1331045422”在我的目录中。
对于例如,我的图像文件名看起来像: 消息16 error_1331045422.png
我居然跑其重命名所有的图像文件这样的脚本。 我也有其他文件(用正确的名称图像文件,js文件和css等具有正确的名称)
请帮我用命令将所有图像文件与“_1331045422”重命名,而不会影响其他人。
编辑:我不仅有错误的文件名.png文件。 有GIF和JPEG了。
您可以使用重命名命令:
rename 's/_\d+(\..{1,3})/$1/g' *
你可以改变之间{}如果你有文件与扩展名超过三个字符长的范围内。
要当心一些系统上的重命名命令是一个有点不同。 看看这里: https://superuser.com/questions/70217/is-there-a-linux-command-like-mv-but-with-regex
让你的文件的备份试图在此之前!
#!/bin/bash
for i in *.png;
do mv $i `echo $i | sed "s/_[0-9]\+\.png^/\.png/"`
done
#!/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)
随着RNM :
rnm -rs '/_\d+(\.)(png|gif|jpg|jpeg)/\1\2/' *
更多的例子在这里 。