Frage

gibt es ein einfache wegen Felder in awk zu kombinieren? Genauer gesagt, ich habe Zeilen wie diese:

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

Ich möchte die beiden Zahlen als die ersten beiden Felder extrahieren, aber dann will ich den gesamten Text (Komma und alle) das dritte Feld sein. Gibt es eine Möglichkeit, das zu tun?

Mein grundlegender awk Aufruf war wie folgt:

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

Welche fein für die erste Zeile funktioniert, aber hält an dem Komma im Text in der zweiten Zeile.

War es hilfreich?

Lösung

Vielleicht:

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

Andere Tipps

Sie könnten sed verwenden, es zu tun.

cat file.txt | sed 's/\(.?*\),\(.?*\),/\1|\2|/'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top