我有多个文件,如下
abcd_q1_2018.pdf
abcd_q2_2018.pdf
accc_q1_2018.pdf
accc_q2_2018.pdf
axxx_q2_2018.pdf
和一个包含
的文本文件abcd 1111
accc 2222
axxx 3333
现在我想将上面的文件重命名为
1111_q1_2018.pdf
1111_q2_2018.pdf
2222_q1_2018.pdf
2222_q2_2018.pdf
3333_q2_2018.pdf
请帮忙。
最佳答案
我喜欢 for 循环,所以这里有一些 for 循环!
外循环遍历重命名映射,内循环将重命名映射应用于目录中的每个文件。
IFS=$'\n' # So we can march through the map line-by-line
for key in `cat rename_map`; do
orig=`echo ${key} | awk '{print $1}'`
new=`echo ${key} | awk '{print $2}'`
for file in *_2018.pdf; do
new_file=`echo ${file} | sed -e "s/^${orig}/${new}/"` # ["] for variable sub
mv ${file} ${new_file} # Rename it!
done
done
关于linux - 重命名文件夹中的部分多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56855741/