我需要从目录中的图像文件中删除“_1331045422”。
例如,我的图像文件名如下所示:message-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)