2011-02-08 3 views
5

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

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

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

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

Благодарим за помощь!

ответ

6

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

$ echo '02/08/2011 7,33 Shopping' | awk '{sub(/,/,".",$2)} 1' 
02/08/2011 7.33 Shopping 
+0

Ничего себе, не знаю, как я пропустил, что в моем O'Reilly. Вот оно. Должно быть, все было в порядке. СПАСИБО! – rockriver

Смежные вопросы