将Date后缀重命名为常用文件名的脚本

时间:2016-09-01 20:07:54

标签: bash

我有一个要求,我需要每周将一些文件名重命名为固定文件名。

为了更好地解释,我每周都会收到以下格式的3个文件:

File_ABC_20160822.TXT.pgp
File_DEF_20160822.TXT.pgp
File_GHI_20160822.TXT.pgp

我需要运行一个小脚本将文件重命名为:

File_ABC.dat
File_DEF.dat
File_GHI.dat

不删除原始文件,因为我们必须保存已传送文件的日志。

问题在于,由于文件每周都附带一个新的日期后缀,因此脚本必须以YYYYMMDD格式选择当前系统日期。

1 个答案:

答案 0 :(得分:1)

您可以循环使用bash参数扩展文件名来重命名时获取所需的名称:

for f in File_*_*.TXT.pgp; do echo cp -i "$f" "${f%_*}.dat"; done

以上将执行Dry-run,为了实际操作,请删除echo

for f in File_*_*.TXT.pgp; do cp -i "$f" "${f%_*}.dat"; done