我想知道如何从文本文件中求出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