有一个csv文件
ip,time,name
1.1.1.1,2018-08-31 10:01:03,postgres
2.1.1.1,2018-08-31 12:51:13,oracle
3.1.1.1,2018-08-31 14:32:53,sql
我需要如下输出
ip,time,name
1.1.1.1,2018-08-31 10:01:03.1,postgres
2.1.1.1,2018-08-31 12:51:13.1,oracle
3.1.1.1,2018-08-31 14:32:53.1,sql
答案1
用这个:
awk -F, 'BEGIN{OFS=","} NR>1{$2=$2".1"}1' file
-F,
设置输入字段分隔符BEGIN{OFS=","}
设置输出字段分隔符NR>1{$2=$2".1"}
.1
如果行号大于 0,则将 a 附加到第二个字段
答案2
使用sed
:
$ sed '2,$s/,/.1,/2' file
ip,time,name
1.1.1.1,2018-08-31 10:01:03.1,postgres
2.1.1.1,2018-08-31 12:51:13.1,oracle
3.1.1.1,2018-08-31 14:32:53.1,sql
这将替换应用于第 2 行及以后的行 ( 2,$
)。该替换s/,/.1,/2
将第二个逗号替换为.1,
。替换命令末尾的/2
使其跳至第二场比赛。