Domanda

c'è un modo semplice per combinare i campi in awk? In particolare, ho linee come questa:

1,2,some text
3,4,some text, but it has commas in it, annoyingly

Voglio estrarre i due numeri come primi due campi, ma poi voglio che tutto il testo (virgole e tutto) sia il terzo campo. C'è un modo per farlo?

La mia chiamata awk di base era così:

awk -F\, '{print $1"|"$2"|"$3}' file.txt

Che funziona benissimo per la prima riga, ma si ferma alla virgola nel testo sulla seconda riga.

È stato utile?

Soluzione

Forse:

awk '{for (i=0;i<2;i++) sub(",", "|", <*>); print}' file.txt

Altri suggerimenti

Potresti usare sed per farlo.

cat file.txt | sed 's/\(.?*\),\(.?*\),/\1|\2|/'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top