regex - awk 树桩 : regex substitution within a field

标签 regex awk

我是 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/

相关文章:

linux - 在输出中搜索并从特定行搜索到特定行,然后再次搜索

linux - 有没有更好的方法从 arp 表中获取 mac 地址?

C exec,awk,不工作

awk - 使用 awk 查找大于或等于 0.021 到 0 的值

linux - 如何从 IP 地址列表中获取第四个八位字节大于 10 的行?

c# - 将扩展正则表达式转换为 .NET 兼容的 RegEx

r - 仅匹配括号内字符的模式

java - 如何使用正则表达式测试 URL 是否包含某些参数但不包含其他参数

Python 正则表达式 - 扩展字符串

java - 正则表达式获取引号中的文件名