2012-06-29 181 views
0

我是unix新手(使用Mac OS X終端),並試圖通過在文件名中間添加一些文本來重命名某些文件。對於./temp文件夾中的所有文件,我想用dr_ic0004_DMN替換從dr_ic0004開始的文件名。多文件重命名unix

例如 dr_0004_tstat1.txtdr_0004_tstat2.txt分別 dr_0004_DMN_tstat1.txtdr_0004_DMN_tstat2.txt

+0

的[重命名Unix的多個文件]可能重複(http://stackoverflow.com/questions/1086502/rename -multiple-files-in-unix) –

+0

你需要一個for來捕獲這個名字,然後你需要用sed或gawk或者其他東西來處理這個名字來創建這個新名字。鍵入man sed來查找它的語法。 – Spidey

+1

歡迎來到StackOverflow!我們很樂意提供幫助。你有什麼嘗試? – ghoti

回答

-1

假設您有dr_ic0004foo,dr_ic0004bardr_ic0004baz。看到他們,你會怎麼做:

ls dr_ic0004* 

到變量部分(foobarbaz),你可以通過運行列表隔離的sed:

ls dr_ic0004*|sed 's/^dr_ic0004//' 

要重命名一個文件你將使用mv

mv dr_ic0004foo dr_ic0004_DMNfoo 

並遍歷一個列表,你可以使用一個for循環:

for x in foo bar baz; do echo $x ; done 

把它們放在一起,你會得到:

for x in `ls dr_ic0004*|sed 's/^dr_ic0004//'`; do mv dr_ic0004$x dr_ic0004_DMN$x; done 
2
for filename in dr_0004* 
do 
    mv "$filename" dr_0004_DMN"${filename#dr_0004}" 
done