在文本文件中找到字符串后保存/添加整数值



我想知道如何从文本文件中求出text1+text2+text3的整数,但如果text1之后不存在text2和/或text3,那么我只从text1中获取整数,并查找text1之后的下一个text2和(或(text3。

example textfile:
text1:102        
text2:123        
text3:1432       
text1:12             
text1:34324      
text3:234234      

期望输出:

102+123+1432
12
34324+234234
or 
1657
12
268558

我不太确定如何获得这个整数值并存储它。

$ cat a.awk
function printsum() { print t1+t2+t3; t1=t2=t3=0 }
BEGIN {FS=":"}
$1 == "text1" && NR > 1 { printsum() }
$1 == "text1" { t1 = $2 }
$1 == "text2" { t2 = $2 }
$1 == "text3" { t3 = $2 }
END  { printsum() }

$ awk -f a.awk file
1657
12
268558

我本来打算等到你发布你的尝试,但既然你已经有了答案。。。

$ cat tst.awk
BEGIN { FS=":" }
$1 == key { print tot; tot=0 }
{ tot += $2 }
NR==1 { key=$1 }
END { print tot+0 }

$ awk -f tst.awk file
1657
12
268558

最新更新