说我的文件是:
1 pretty_ 18
2 _candy123 2
3 kitty 9
4 hellokitty 11
如果$ 2列包含“ty”,我想总结$ 3列;由于$ 2是唯一包含字母的列,我想使用:
grep "ty" output | awk '{sum+=$3} END{print sum}'
我的问题是:
谢谢!
答案 0 :(得分:1)
您可以为每个块添加条件,例如awk 'NR > 2{print $2}' file
~
允许将变量与正则表达式匹配
$ awk '$2 ~ /ty/{sum+=$3} END{print sum}' output
38
如果甚至一次找不到模式,可以采用不同的方式处理:
$ awk '$2 ~ /abc/{sum+=$3} END{print sum}' output
$ awk '$2 ~ /abc/{sum+=$3} END{print sum+0}' output
0
$ awk '$2 ~ /abc/{sum+=$3} END{print +sum}' output
0
答案 1 :(得分:0)
试试这个
x=($(cut -d ' ' -f3 FILE|grep -n ty|cut -d ':' -f1|paste -d $'\t' - - -))
for i in ${x[@]}
do
nl -n ln FILE|grep ^$i|tr $'\t' ' '|tr -s ' '|cut -d ' ' -f2,4|tr ' ' '+'|bc
done