Строки между запятыми заключайте в кавычки, но не числа.

Строки между запятыми заключайте в кавычки, но не числа.

Итак, у меня есть текст в файле, который почти представляет формат CSV, но не полностью. Я хочу превратить его в файл CSV.

У меня, например, есть:

cuz,0,1,2,3,-4,abc,a b c,0

Как я могу превратить это в

"cuz",0,1,2,3,-4,"abc","a b c",0

Любая помощь будет оценена по достоинству!

Заранее спасибо.

решение1

таращитьсяподход:

gawk -i inplace -F, '{for(i=1;i<=NF;i++){ 
      if ($i!~/^-?[0-9]*$/) $i=sprintf("\"%s\"",$i); }}1' OFS=',' file

Содержимое file:

"cuz",0,1,2,3,-4,"abc","a b c",0

-i inplace- позволяетна местемодификация файла

$i!~/^-?[0-9]*$/- шаблон соответствует только полю, содержащему символы, кроме цифр

Связанный контент