我需要從我的目錄中的圖像文件中刪除「_1331045422」。 。重命名多個文件 - linux/ubuntu
用於例如,我的圖像文件名看起來像:消息16 error_1331045422.png
我居然跑其重命名所有圖像文件這樣的腳本。 另外我還有其他文件(正確名稱的圖像文件,js文件和css等有正確的名稱)
請幫我一個命令,以「_1331045422」重命名所有圖像文件,而不會影響其他人。
編輯: 我不僅有.png文件錯誤的文件名。還有gif和jpegs。
我需要從我的目錄中的圖像文件中刪除「_1331045422」。 。重命名多個文件 - linux/ubuntu
用於例如,我的圖像文件名看起來像:消息16 error_1331045422.png
我居然跑其重命名所有圖像文件這樣的腳本。 另外我還有其他文件(正確名稱的圖像文件,js文件和css等有正確的名稱)
請幫我一個命令,以「_1331045422」重命名所有圖像文件,而不會影響其他人。
編輯: 我不僅有.png文件錯誤的文件名。還有gif和jpegs。
您可以使用重命名命令:
rename 's/_\d+(\..{1,3})/$1/g' *
您可以更改之間{}如果您有擴展名的文件超過三個字符長的範圍內。
請注意,在某些系統上,rename命令有點不同。 看一看這裏: 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)
我在問題的末尾添加了一個信息。請參見。 –
超酷。如果這適用於子目錄內的文件,那將會很棒 –
沒有用於重命名的遞歸選項。你需要一個bash腳本才能更進一步。但我同意,重新命名它很棒。很遺憾,在某些系統上,比如slackware,有「錯誤」的版本。 – Zagorax
謝謝@Zagorax :) –