/!\问题基本解决了,请看下面我自己的答案,了解更多细节和附属问题/!\
我试图根据特定的单词添加两行,但我能找到的是在一些模式之后添加所有内容:如何在两个标记模式之间选择可能出现多次awk/sed的行
这不是我正在照顾的.
考虑以下输出:
aji 1
bsk 2
cmq 3
doh 4
enr 5
fwp 6
gzx 7
Run Code Online (Sandbox Code Playgroud)
我想要的是像cmq + fwp,输出应该是:
9
Run Code Online (Sandbox Code Playgroud)
我知道如何添加值,但我错过了这select line containing cmq, then select line containing fwp部分.
那么,有没有办法awk可以独立地严格选择两个特定的行(然后添加它们)?
编辑:
据我所知,匹配单词是awk '/cmq/',但我需要这样做,因为我们也说"fwp",所以我可以添加它们.
$ awk '$1 ~ /^(cmq|fwp)$/{sum+=$2} END { print sum}' infile
Run Code Online (Sandbox Code Playgroud)
说明:
awk '$1 ~ /^(cmq|fwp)$/{ # look for the match in first field
sum+=$2 # sum up 2nd field ($2) value,where sum is variable
}
END{ # at the end
print sum # print variable sum
}' infile
Run Code Online (Sandbox Code Playgroud)
检测结果:
$ cat infile
aji 1
bsk 2
cmq 3
doh 4
enr 5
fwp 6
gzx 7
$ awk '$1 ~ /^(cmq|fwp)$/{sum+=$2} END { print sum}' infile
9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |