2014-10-30 132 views
1

重命名多個文件,我有一個包含有這樣的名稱的多個文件的目錄:在目錄中的UNIX

filename.ch.txt. 

我想改變所有的文件名,以這樣的事情。

filename_ch.txt 

任何人都可以請告訴我如何在unix中做到這一點...?我嘗試重命名命令,但它沒有奏效。

這是我做過什麼(逃逸, 「_」 字符 「」):

shell> rename 's/\\.ch/\\_ch/' *.txt 

謝謝!

回答

0

你可以做什麼:

在這裏,我嘲笑你的文件:

touch {1..30}.ch.txt. 

然後重命名他們這樣說:

for i in `ls`; do dest="${i%.ch.txt.}_ch.txt"; mv ${i} ${dest}; done 
+0

這是你需要的嗎?如果是,請投票並接受答案。 – 2014-10-31 06:28:04

+0

對此的任何更新,它是否適用於我的答案? – 2014-10-31 21:08:22

0

您只需要轉義元字符「。」是在「之前」放置'\'的一個。「逃脫但不逃避「_」。這是你需要做的

重命名's/\ ch/_ch /'* .txt。

+0

我已經嘗試過,但它仍然不工作。 – user3527124 2014-10-30 19:20:56

+0

是您的文件名「filename_ch.txt」。 ?如果是,則將「\ *。txt」替換爲「\ *。txt」。 – dev0 2014-10-30 19:23:51

+0

文件名是filename.ch.txt,我想用filename_ch.txt替換它。 – user3527124 2014-10-30 19:30:50