Setzen Sie Anführungszeichen um Zeichenfolgen zwischen Kommas, aber nicht um Zahlen

Setzen Sie Anführungszeichen um Zeichenfolgen zwischen Kommas, aber nicht um Zahlen

Ich habe also einen Text in einer Datei, der fast dem CSV-Format entspricht, aber nicht vollständig. Ich möchte ihn jedoch in eine CSV-Datei umwandeln.

Ich habe zum Beispiel:

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

Wie kann ich das umwandeln in

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

Jede Hilfe wäre willkommen!

Dank im Voraus.

Antwort1

gaffenAnsatz:

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

Die fileInhalte:

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

-i inplace- erlaubtan Ort und StelleDateiänderung

$i!~/^-?[0-9]*$/- Mustervergleich nur mit Feldern, die Zeichen außer Zahlen enthalten

verwandte Informationen