Немного сложно получить правильное экранирование в строке формата date
, но учитывая
$ cat file
old1
old2
old3
, затем
$ cat << 'EOF' | ed -s file
1m$
r !date +\ \%x\ \%X
.-1,.j
,p
EOF
old2
old3
old1 2019-07-25 05:42:32 PM
или (в виде одного -вкладыша)
printf '%s\n' '1m$' 'r !date +\ \%x\ \%X' '.-1,.j' ',p' | ed -s file
Чтобы отредактировать файл на месте, заменитеp
(print )наwq
(write -quit ). Конечно, вы можете заменить %x
и %X
другими спецификаторами формата по вашему выбору.