Как я могу удалить наносекунду из каждой строки в файле. данные выглядят как имя файла test.csv
ip,time,name 1.1.1.1,2018-08-17 15:05:52:016469121,1.13.0-0007 1.1.1.2,2018-08-17 15:05:52:016469121,1.13.0-0007
Пытаться
sed 's/:[[:digit:]]*,/,/' file ip,time,name 1.1.1.1,2018-08-17 15:05:52,1.13.0-0007 1.1.1.2,2018-08-17 15:05:52,1.13.0-0007
последняя двоеточие, следующие цифры и последняя запятая заменят только запятой.
awk -F',' -vOFS=',' '{sub(/:[0-9]{9}$/, "", $2); print}' input.txt
Выход:
ip,time,name 1.1.1.1 2018-08-17 15:05:52 1.13.0-0007 1.1.1.2 2018-08-17 15:05:52 1.13.0-0007
awk -F',' -vOFS=',' '{foo}' input.txt
: использовать awk
с разделителем полей (и разделителем выходных полей), запускать команды foo
для файла input.txt
. sub(/:[0-9]{9}$/, "", $2);
: для второго поля $2
замените регулярное выражение :[0-9]{9}$
(то есть девять цифр подряд в конце поля) ничем. print
: напечатать новую строку