如何从文件中删除纳秒

如何从文件中删除纳秒

如何从文件中的每一行中删除纳秒。数据看起来像文件名是测试.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

答案1

尝试

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

它将用逗号替换最后一个冒号、后面的数字和最后一个逗号。

答案2

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.txtawk与字段分隔符(和输出字段分隔符)一起使用,在文件上,运行命令。fooinput.txt
  • sub(/:[0-9]{9}$/, "", $2);:对于第二个字段$2,将正则表达式:[0-9]{9}$(即字段末尾的连续九个数字)替换为任何内容。
  • print:打印新行

相关内容