【发布时间】:2020-06-14 18:52:54
【问题描述】:
我有一个这样的文件:
id=1+5
id=1+9
id=25100+10
xyz=1+
abc=123456
conf_string=LMN,J,IP,25100+1,0,3,1
我想将 x+y 的实例替换为 (x+y) 的值。即1+5换成6,25100+1换成25001,以此类推。
我通过匹配 /[:digit:]++[+digit:]+/ 之类的正则表达式来尝试使用 gawk
使用以下我可以替换一些实例。
gawk 'BEGIN {FS = "[=+,]"} ; /[:digit:]++[+digit:]+/ {print $1 "=" ($2 + $3)} ! /[:digit:]++[+digit:]+/ {print $0}' /tmp/1.txt
id=6
id=10
id=25110
xyz=1+
abc=123456
conf_string=LMN,J,IP,25100+1,0,3,1
我不确定如何匹配和替换上例中的 (25100+1)。理想情况下,我想提取<number> + <number> 的所有实例并将其替换为总和。它始终是两个数字的总和。
【问题讨论】: