【发布时间】:2021-12-18 21:27:31
【问题描述】:
我需要同样将以下文件从 PFSI4C.CSC.CCC.FSIContractData20211008.zip 重命名为 TFSI4C.CSC.CCC .FSIContractData20211104.zip.
每个文件的名称都应以“T”开头并以当前系统日期 + .zip 结尾
我正在尝试循环文件,它看起来像这样:
for FILENAME in PFSI4C.CSC.CCC.FSIContractData20211008; do
NEW_FILENAME_HEADER=`echo $FILENAME | awk -F "." '{ print $1"."$2"."$3 }'` # which would takes PFSI4C.CSC.CCC.
NEW_FILENAME_SUFFIX=`echo $FILENAME | awk -F "[.|Data20]" '{ print "."$4 }'` # this part where I can't figure out to take only "FSIContract"
NEW_FILENAME="${NEW_FILENAME_HEADER}.""${NEW_FILENAME_SUFFIX}""Data20""${DATE}".zip" # which should make "TFSI4C.CSC.CCC.FSIContractData20211104.zip."
mv $FILENAME $NEW_FILENAME
done
FYI $DATE 在我们的脚本中定义如下:DATE='date +'%y%m%d' 例如 211104
提前致谢!
【问题讨论】:
-
将您的 shell 脚本复制/粘贴到 shellcheck.net 并修复它告诉您的问题,如果您仍有问题,请告诉我们。也不要使用所有大写的变量名,请参阅correct-bash-and-shell-script-variable-capitalization。
标签: command-line rename