我有文件
10 - William English 80 100 404
10 abc William Math 50 100 501
10 xyzsd William IT 60 100 550
10 - William Sec 60 100 401
11 - John English 90 100 400
11 - John Math 75 100 404
11 ali John IT 85 100 550
11 - John Sec 60 100 401
条件:如果第二列为-,则第二条件检查最后一列从4开始的值,然后计算Name(William和John(输出:
3 John
2 William
尝试:
awk -F ' ' '{if ($2 == "-" && $NF ~ /^4/) print $3}' <file_name> | uniq -c
说明:我们使用awk中的if语句来检查两个条件:
- 如果第二个元素等于'-'
- 如果最后一个元素以4开头
如果以上两个条件成立,我们将打印名称,存储在第三元素中
uniq-c将计算名称的出现次数
您可以使用此awk
:
awk '$2 == "-" && $NF ~ /^4/ { ++freq[$3] }
END { for (i in freq) print freq[i], i }' file
2 William
3 John