重命名同一文件夹中的两个文件

时间:2014-11-07 09:31:59

标签: bash rename cp

档案

  events-number1.10a.pdf    

结果

 events-number1.10a.docx.pdf  

理想

 events-number1.10a.pdf   
 events-number1.10a.docx.pdf       

2 个答案:

答案 0 :(得分:0)

您可以尝试这个简单的bash脚本

#!/bin/bash
for file in  *.pdf
do
    new_file=$(echo "$file"  | sed -r 's/(.*)(\.pdf)/\1.docx\2/')
    mv $file $new_file
done

<强>输出:

events-number1.index10a.docx.pdf 
events-number1.index10b.docx.pdf 
events-number1.index10c.docx.pdf 
events-number2.index10a.docx.pdf 
events-number2.index10b.docx.pdf 
events-number2.index10c.docx.pdf 

如果要使用cp命令而不是mv命令

复制文件
cp $file $new_file

所以你现有的文件不会改变。

说明:
将所有日志文件传递给for循环,然后将文件名拆分为预期结果以使用sed命令并存储在一个变量中。然后将旧文件mv转换为意味着您预期文件的新文件。

答案 1 :(得分:0)

一个简单的重命名命令就可以完成这项工作。

rename 's/(?=\.pdf$)/.docx/' *.pdf