我正在尝试创建一个bash脚本,可以在其中将文件名中的日期替换为当前日期,但是,我无法这样做。
这是我到目前为止所拥有的:
#!/bin/bash
my_file="FILENAME_20170410235908_GTT_DEV_20170410235400_20170410235408_XX_YY.nc"
my_date=`date "+%Y%m%d"`
echo "$my_file" | sed 's/\([0-9]\{12\}\)/"${my_date}"/g'
我正在得到这个:
FILENAME_"${my_date}"08_GTT_DEV_"${my_date}"00_"${my_date}"08_XX_YY.nc
但是,这就是我想要的:
FILENAME_2019070135908_GTT_DEV_20190701235400_20190701235408_XX_YY.nc
我该如何实现?
答案 0 :(得分:1)
您可以尝试
sed "s/\([0-9]\+\)/${my_date}/g"
单引号不会替换变量数据。
my_date
将只有日期。如果还需要时间戳,请从date命令添加时间戳。