Как заменить пользовательскую строку даты в текстовом файле

printf

позволяет больше контролировать формат печати, включая отсутствие новой строки, если только вы не укажете ее с помощью [1177481]\n[1177482].

The Paragraph Settings Dialog

%s[1177484] обозначает строковый формат переменной. [1177485]Доступны другие управляющие буквы[1177486], которые позволяют вам больше контролировать форматирование каждой переменной. [1177046]

1
02.04.2014, 22:25
2 ответа

Упрощенный подход состоит в том, чтобы просто использовать 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 , которую нужно запустить.

4
27.01.2020, 23:13

Чтобы заменить первую строку ожидаемой меткой времени, просто используйте

sed "1c TS: $(date '+%F %T')"

1 в начале означает первая строка, c означает «заменить строку следующей строкой». $ (...) вставляет вывод данной команды, см. man date для получения подробной информации.

3
27.01.2020, 23:13

Теги

Похожие вопросы