将日期中的文件重命名为YYMMDD0000

时间:2016-09-12 15:57:18

标签: bash shell scripting rename

我有一个这个名字的文件 ims2015255_4km_GIS_v1.3.png所以它显示了2015年的255天。

我想将此文件自动重命名为

SNC_obs_YYMMDD0000.png始终为0000的时间

非常感谢。

1 个答案:

答案 0 :(得分:1)

解析原始名称非常简单。

input=ims2015255_4km_GIS_v1.3.png
[[ $input =~ ims(....)(...)_ ]] && year=${BASH_REMATCH[1]} day=${BASH_REMATCH[2]}

将其转换为新日期可能会更棘手。但是,如果你有GNU date,你可以使用

output=$(date --date "$year-1-1 + $(($day - 1)) days" +"SNC_obs_%Y%m%d0000.png")

如果您未使用bash且仅限于POSIX指定的功能,请尝试以下操作设置yearday

tmp=${input#ims}
tmp=${tmp%%_*}
year=${tmp%???}
day=${tmp#????}