Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 在unix中为循环中的不同文件重命名文件_Shell_Unix - Fatal编程技术网

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
    格式运行
    date
    命令。这将以2014年11月2日的形式生成日期

  • 用于*.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