Преобразование метки времени внутри текстового файла

Чтобы использовать s2diskс systemdв Debian, вы должны:

  • Отредактируйте службу гибернации с помощью

    sudo systemctl edit systemd-hibernate.service
    
  • Вставьте следующий код

    [Service]
    ExecStart=
    ExecStartPre=-/bin/run-parts -v -a pre /usr/lib/systemd/system-sleep
    ExecStart=/usr/sbin/s2disk
    ExecStartPost=-/bin/run-parts -v --reverse -a post /usr/lib/systemd/system-sleep
    
  • Обновление systemd

    $ sudo systemctl daemon-reload
    
  • Текущий пробег

    $ sudo systemctl hibernate
    
0
01.11.2019, 22:53
3 ответа

Одна возможность с GNUsed:

sed -Ei 's/([0-9]{4}-[0-9]{2}-[0-9]{2})-([0-9]{2}).([0-9]{2}).([0-9]{2})/\1 \2:\3:\4/' file

([0-9]{4}-[0-9]{2}-[0-9]{2})-([0-9]{2})\.([0-9]{2})\.([0-9]{2})находит шаблон YYYY-MM-DD-HH.MM.SSи захватывает YYYY-MM-DDи HH. MM.SS

/\1 \2:\3:\4/заменяет весь шаблон (ГГГГ -ММ -ДД -ЧЧ.ММ.СС )захваченными шаблонами (ГГГГ -ММ -ДД)(ЧЧ)(MM)(SS )и заменив затем тире на пробел и точку на:

0
28.01.2020, 03:09

Это должно работать:

sed -Ei 's/([0-9]{4}-[0-9]{2}-[0-9]{2})-([0-9]{2}).([0-9]{2}).([0-9]{2}).([0-9]{6})/\1 \2:\3:\4.\5/g' filename

Скобки разбивают отметку времени на 5 групп, поэтому \1 заменяется на 2009, \2 на 06 и так далее.

0
28.01.2020, 03:09

Вы можете попробовать команду awk ниже

 awk '{print substr($1,1,10)" "substr($1,12)}' filename

выход

2009-06-08 11.15.45.589225
0
28.01.2020, 03:09

Теги

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