【发布时间】:2015-01-04 01:26:09
【问题描述】:
文件
events-number1.10a.pdf
结果
events-number1.10a.docx.pdf
理想
events-number1.10a.pdf
events-number1.10a.docx.pdf
【问题讨论】:
-
您的预期输出是什么?第二还是第三?
文件
events-number1.10a.pdf
结果
events-number1.10a.docx.pdf
理想
events-number1.10a.pdf
events-number1.10a.docx.pdf
【问题讨论】:
一个简单的重命名命令就可以完成这项工作。
rename 's/(?=\.pdf$)/.docx/' *.pdf
【讨论】:
你可以试试这个简单的 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 到新文件,这意味着您的预期文件。
【讨论】:
mv "${file}" "${file#log}main.gmt.log"
main.gmt.log,如events-number2.index10a.log,但结果为@ 987654330@