我是 awk 的新手,我似乎无法弄清楚这一点。如何使用正则表达式替换单个字段?
在 perl 中,我可以将感兴趣的字段分配给一个变量,然后 $myvar =~ s/foo/bar/g
.当然,在 perl 中我也必须做我自己的字段管理,这在 awk 中更容易。
对于刚刚手头的问题,它是欧洲货币记录,我想在金额字段中将逗号更改为句点。但是我只需要针对那个字段,所以我不会破坏其他可以使用逗号作为散文标点符号的字段。
解决方案是否比我想象的更困难?还是更简单?我是否必须更改记录分隔符或类似的东西?
感谢您的帮助!
最佳答案
sub() 接受第三个参数,即要更改的字段(或变量):
$ echo '02/08/2011 7,33 Shopping' | awk '{sub(/,/,".",$2)} 1'
02/08/2011 7.33 Shopping
关于regex - awk 树桩 : regex substitution within a field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4931034/