我有一些文件,如file_022.bmp,file_023.bmp ... file_0680.bmp的。我需要重命名這些更方便的東西,如file_1.bmp,file_2.bmp ... file_658.bmp。重命名多個文件殼牌在Linux的
有沒有辦法,我可以寫爲我做這一個bash腳本?感謝您的幫助和建議。
盧克^ h
我有一些文件,如file_022.bmp,file_023.bmp ... file_0680.bmp的。我需要重命名這些更方便的東西,如file_1.bmp,file_2.bmp ... file_658.bmp。重命名多個文件殼牌在Linux的
有沒有辦法,我可以寫爲我做這一個bash腳本?感謝您的幫助和建議。
盧克^ h
如果你是一個基於Debian的Linux系統,那麼你可以使用它接受regular expressions重命名文件重命名腳本。更多info,因爲我發現很難找到手冊頁。
例如
[email protected]_Gate:~$ ls p*.php
parse.php pd.php pgrep.php preg_based.php proc.php
假設我要改變擴展.perl與_文件 然後在前面加上名字我用命令:
rename -n 's/([a-z]*)\.php/file_$1.perl/' p*.php
會給
parse.php renamed as file_parse.perl
pd.php renamed as file_pd.perl
pgrep.php renamed as file_pgrep.perl
preg_based.php renamed as preg_file_based.perl
proc.php renamed as file_proc.perl
我選擇和捕捉基本文件名([a-z]*)
,然後在替代品$1
中使用它,並追加.perl
並在常規條件前加上1美元摹file_
-n選項使得試運行而無需改變任何東西
你可以從這個例子中你選擇正則表達式需要正確地想出來,或者你得到的情況等,其中你想上面的preg_based.php見file_preg_based.perl :) 來補償我會一直需要使用([a-z_]*)
這裏
它的原因很多,我一直掛在Debian的一個,我很想找到其他非Debian相當於系統: -/
你能告訴我一個例子嗎? –
您可以查看本手冊。 http://manpages.ubuntu.com/manpages/dapper/man1/prename.1.html – txominpelu
爲你增加了一個例子 –
如果你有文件a.bmp,b.bmp,c.bmp 你想file_1.bmp,file_2.bmp結束後,使用bash file_3.bmp
:
mkdir result
index=1
for i in *.bmp
do
mv "$i" "result/file_"$((index++)).bmp
done
注意事項:使用子目錄 建議,以避免意外覆蓋,看起來像file_xx.bmp
,如果你有太多的文件,將在命令行擴張後,你可以使用類似文件:
mkdir result
index=1
find . -name "*.bmp" | while read i
do
echo mv "$i" "result/file_"$((index++)).bmp
done
檢查輸出刪除後的「迴響」
你嘗試過什麼?你只需要知道如何做一些[字符串操作](http://mywiki.wooledge.org/BashFAQ/100) – ormaaj
可能重複的[重命名BASH中的幾個文件](http://stackoverflow.com/questions/2416263/rename-several-files-in-the-bash) –
你是說你想從「022」中減去21,並刪除前導零? –