Как редактировать поля в awk? - PullRequest
0 голосов
/ 15 мая 2018

для одного из моих университетских заданий я должен редактировать базы данных с помощью утилит POSIX.

Моя проблема в том, что я получил журнал импорта компании, и мой профессор хочет, чтобы я избавился от десятичных секунд.

2018-04-12 17:03:45,547 INFO:twoex.db.record_administration.utilities:

Я пытался использовать awk, но поскольку временная метка - это только одно поле, я изо всех сил пытаюсь избавиться от ,547

У кого-нибудь есть идеи, как мне решить эту проблему? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Просто удалите первую запятую и все, что идет после нее, пока не будет найден пробел или табуляция (мне не ясно, что такое разделитель полей):

sed 's/,[^ \t]*//' file

Результат:

2018-04-12 17:03:45 INFO:twoex.db.record_administration.utilities:      # old line
2018-04-12 17:03:45,547 INFO:twoex.db.record_administration.utilities:  # new line
0 голосов
/ 15 мая 2018

После awk может помочь вам в том же.

awk '{sub(/,.*/,"",$2)} 1'  Input_file

Если вы хотите сохранить вывод в сам файл Input_file, добавьте следующую команду > temp_file && mv temp_file Input_file.

...