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.
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