Shell 在unix中为循环中的不同文件重命名文件
我有如下文件:Shell 在unix中为循环中的不同文件重命名文件,shell,unix,Shell,Unix,我有如下文件: ~ls N1JRN_S001.csv N1JRN_S002.csv N1JRN_S003.csv N1MNY_S001.csv N1POS_S001.csv 我想用当前日期重命名所有类型的文件,如 03nov14N1JRN_S001.csv 03nov14N1JRN_S002.csv 03nov14N1JRN_S003.csv 03nov14N1MNY_S001.csv 03nov14N1POS_S001.csv 在循环中如何处理每种类型的文件???这将根据今天
~ls
N1JRN_S001.csv N1JRN_S002.csv N1JRN_S003.csv N1MNY_S001.csv N1POS_S001.csv
我想用当前日期重命名所有类型的文件,如
03nov14N1JRN_S001.csv
03nov14N1JRN_S002.csv
03nov14N1JRN_S003.csv
03nov14N1MNY_S001.csv
03nov14N1POS_S001.csv
在循环中如何处理每种类型的文件???这将根据今天的日期重命名当前目录中的所有
csv
文件:
today=$(date '+%d%b%y')
for f in *.csv
do
mv "$f" "$today$f"
done
工作原理:
这将以today=$(日期'+%d%b%y')
格式运行+%d%b%y
命令。这将以2014年11月2日的形式生成日期date
这将在名称以用于*.csv中的f;执行
.csv
这会将文件mv“$f”“$today$f”
重命名为所需的格式f
这标志着循环的done
结束
$ ls
N1JRN_S001.csv N1JRN_S002.csv N1JRN_S003.csv N1MNY_S001.csv N1POS_S001.csv script.sh
让我们运行脚本:
$ bash script.sh
这些文件现在已重命名:
$ ls
02Nov14N1JRN_S001.csv 02Nov14N1JRN_S002.csv 02Nov14N1JRN_S003.csv 02Nov14N1MNY_S001.csv 02Nov14N1POS_S001.csv script.sh