Text-Processing

附加到第二列

  • August 31, 2018

有一個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

使用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使其跳到第二個匹配項。

用這個:

awk -F, 'BEGIN{OFS=","} NR>1{$2=$2".1"}1' file
  • -F,設置輸入欄位分隔符
  • BEGIN{OFS=","}設置輸出欄位分隔符
  • NR>1{$2=$2".1"}``.1如果行號大於 0,則將a 添加到第二個欄位

引用自:https://unix.stackexchange.com/questions/465975