Используйте sed, чтобы заменить регулярное выражение переменной - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь создать 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

Howerver, это то, что я хотел бы иметь:

FILENAME_2019070135908_GTT_DEV_20190701235400_20190701235408_XX_YY.nc

Как я могудостичь этого?

1 Ответ

1 голос
/ 01 июля 2019

Вы можете попробовать

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

одинарные кавычки не заменят переменные данные.my_date будет иметь только дату.Если вам нужна также временная метка, добавьте ее из команды date.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...