awk stumper: регулярное выражение в поле - PullRequest
5 голосов
/ 08 февраля 2011

Я новичок в awk, и я не могу понять это.Как заменить в одном поле регулярное выражение?

В perl я мог бы присвоить поле интереса переменной, затем $myvar =~ s/foo/bar/g.Конечно, также в Perl я должен управлять своим полем, а в awk это проще.

Для рассматриваемой проблемы сейчас это европейские денежные записи, и я хочу изменить запятые на периоды в поле суммы.Но мне нужно нацелиться только на это поле, поэтому я не искажаю другие поля, где запятые могут быть использованы в качестве знаков препинания.

Решение сложнее, чем я себе представляю?Или проще?Нужно ли мне менять разделитель записей или что-то в этом роде?

Спасибо за помощь!

1 Ответ

6 голосов
/ 08 февраля 2011

sub () принимает третий аргумент, который представляет собой поле (или переменную) для изменения:

$ echo '02/08/2011 7,33 Shopping' | awk '{sub(/,/,".",$2)} 1'
02/08/2011 7.33 Shopping
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...