我是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
Run Code Online (Sandbox Code Playgroud)