как добавить одинарные кавычки в определенный столбец, используя unix - PullRequest
0 голосов
/ 09 мая 2020

ВХОД:

    101,ravi,chennai

    101,kavi,mumbai

    101,pavi,delhi

ВЫХОД: 101, 'ravi', 'chennai'

    102,'Kavi','mumbai'

    103,'Pavi','delhi'

1 Ответ

0 голосов
/ 09 мая 2020

Использование 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 
...