awk stumper:字段内的正则表达式替换

时间:2011-02-08 08:41:38

标签: regex awk

我是awk的新手,我似乎无法想出这个。如何使用正则表达式替换单个字段?

在perl中,我可以将感兴趣的字段分配给变量,然后$myvar =~ s/foo/bar/g。当然在perl中我也必须自己进行现场管理,这在awk中更容易。

对于刚才的问题,这是欧洲的资金记录,我想在金额字段中将逗号更改为句点。但我只需要定位那个字段,所以我不会破坏其他字段,其中逗号可以用作散文标点符号。

解决方案比我想象的更困难吗?还是更简单?我是否必须更改记录分隔符或类似的东西?

感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

sub()接受第三个参数,即要更改的字段(或变量):

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