2014-10-30 134 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