Объединение полей в Awk - PullRequest
       9

Объединение полей в Awk

1 голос
/ 31 декабря 2008

легко ли объединить поля в awk? В частности, у меня есть такие строки:

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

Я хочу извлечь два числа как первые два поля, но затем я хочу, чтобы весь текст (запятые и все) был третьим полем. Есть ли способ сделать это?

Мой базовый звонок на awk был таким:

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

Который отлично работает для первой строки, но останавливается на запятой в тексте во второй строке.

Ответы [ 2 ]

2 голосов
/ 31 декабря 2008

Может быть:

awk '{for (i=0;i<2;i++) sub(",", "|", $0); print}' file.txt
0 голосов
/ 31 декабря 2008

Вы можете использовать sed для этого.

cat file.txt | sed 's/\(.?*\),\(.?*\),/\1|\2|/'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...