позволяет больше контролировать формат печати, включая отсутствие новой строки, если только вы не укажете ее с помощью [1177481]\n[1177482].
%s[1177484] обозначает строковый формат переменной. [1177485]Доступны другие управляющие буквы[1177486], которые позволяют вам больше контролировать форматирование каждой переменной. [1177046]
Упрощенный подход состоит в том, чтобы просто использовать sed
и заменить строку на правильную. Итак, если текущее время 2014-04-02 21:34:13
, вы можете просто запустить
sed 's/2014-03-31 13:56:01/2014-04-02 21:34:13/' file
Поскольку, предположительно, вы хотите сделать это динамически, вы можете передать sed
результат соответствующего вызова date
вместо этого:
sed "s/2014-03-31 13:56:01/$(date '+%F %T')/" file
Обратите внимание на двойные кавычки ( "
) вокруг команды sed
, они необходимы для ] date
, которую нужно запустить.
Чтобы заменить первую строку ожидаемой меткой времени, просто используйте
sed "1c TS: $(date '+%F %T')"
1 в начале означает первая строка, c
означает «заменить строку следующей строкой». $ (...)
вставляет вывод данной команды, см. man date
для получения подробной информации.