Есть конфиг, в нем нужно поменять два значения:
database=file:@@{DBDIR}/aide.db.gz
database_out=file:@@{DBDIR}/aide.db.new.gz
Нужно значение aide.db.gz заменить на aide.db.20171212.gz, т.е. вчерашнюю дату подставить, а aide.db.new.gz заменить на aide.db.20171213.gz, подставить сегодняшнюю дату.
Т.е. результат должен быть таким:
database=file:@@{DBDIR}/aide.db.20171212.gz
database_out=file:@@{DBDIR}/aide.db.20171213.gz
Насколько я поняла, должно сначала выводится сегодняшнее число через
date +%Y%m%d
sed -i "s/aide.db.new.gz/aide.db.{$date +%Y%b%d}.gz/g" /etc/file.conf
Пробовала через единую строку команды, через экранирование кавычками, апострофами, в итоге, если переменная читается, в значении получается aide.db..gz или
sed -i "s/aide.db.new.gz/aide.db.`$date +%Y%b%d`.gz/g" /etc/file.conf
-bash: +%Y%b%d: команда не найдена
sed -i "s/aide.db.new.gz/aide.db.${date +%Y%b%d}.gz/g" /etc/file.conf
-bash: s/aide.db.new.gz/aide.db.${date +%Y%b%d}.gz/g: bad substitution
Как-то можно через echo вывести дату, обозначить ее за переменную (в командной строке), а потом ее подставить во второе значение в команде sed?