В моей Unix AIX мне нужно заменить дату в файле параметров на системную дату, используя сценарий оболочки, который будет запускать сеанс после сеанса PowerCenter.Заменить дату в файле параметров с системной датой
Я могу использовать SED, чтобы заменить строковую переменную, но запускаясь с использованием даты.
Я попытался использовать запятые вместо косых черт как разделители. Содержимое тестового файла выглядит следующим образом:
$$TESTFIELD=12/29/2016 14:57:51
СЕПГ команда, которую я чувствовал, должно работать было:
sed -e "s,^\($$TESTFIELD=\).*,\1'date +"%D %T"'," testfile.txt > tmp.$$
После чего я бы переместить tmp.$$
к testfile.txt
, но результаты бросил следующую ошибку:
sed: 0602-404 Function s,^\(14680298TESTFIELD=\).*,\1'date +%D cannot be parsed.
Обратите внимание, что вы используете двойные кавычки, поэтому 'sed -e" s ... "' расширяет '$$ TESTFIELD' до его значения. – fedorqui
Возможно, вы захотите посмотреть [Как изменить формат даты в sed?] (Http://stackoverflow.com/a/34080390/1983854), чтобы узнать, как выполнить внешнюю команду из 'sed'. В принципе, вам нужно использовать флаг '-e'. – fedorqui
Возможно: 'Now = $ (date +"% D% T "); sed "s, =. * $, = $ Теперь," testfile.txt >> tmp. $$ ' –