如何使用unix在某一列中添加单引号?

问题描述 投票:0回答:1

INPUT :

    101,ravi,chennai

    101,kavi,mumbai

    101,pavi,delhi

OUTPUT: 101,'Ravi','Chennai'

    102,'Kavi','mumbai'

    103,'Pavi','delhi'
unix comma quote
1个回答
0
投票

使用 sed:

sed "s/,\([^,]*\)/,'\1'/g" file

替换逗号后的任何非逗号字符(用以下方法捕获) \(...\))与逗号、单引号、捕获组和单引号。替换的方法是 g大厅里。


使用 awk 以引用第二和第三场。

awk 'BEGIN{ FS=OFS="," }
  NF==0 { print; next }
  {
    printf $1  # print first field
    for (i=2;i<=NF;i++){
      # print comma and the next field
      printf OFS (i==2||i==3 ? "'\''" $i "'\''" : $i)
    }
    printf ORS # print newline
  }
' file 
© www.soinside.com 2019 - 2024. All rights reserved.