【问题标题】:Use sed to replace regex with a variable使用 sed 将正则表达式替换为变量
【发布时间】:2019-11-11 23:38:18
【问题描述】:

我正在尝试创建一个 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

我怎样才能做到这一点?

【问题讨论】:

标签: bash variables sed


【解决方案1】:

你可以试试

sed "s/\([0-9]\+\)/${my_date}/g"

单引号不会替换变量数据。 my_date 将只有日期。如果您还想要时间戳,请从 date 命令中添加它。

【讨论】:

    猜你喜欢
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2018-08-22
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    相关资源
    最近更新 更多