如何在不使用 "awk" 的情况下从 Shell 脚本中的条件文件中获取信息

How to get information from file with condition in Shell script without using "awk"

我有文件

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 开始的最后一列值,然后计算名称(William 和 John) 输出:

3 John
2 William

尝试:

awk -F ' ' '{if ( == "-" && $NF ~ /^4/) print }' <file_name> | uniq -c

说明: 我们在 awk 中使用 if 语句来检查两个条件:

  • 如果第二个元素等于'-'
  • 如果最后一个元素以 4 开头

如果以上两个条件成立,我们打印名称,存储在第3个元素

uniq -c 将计算名称的出现次数

您可以使用这个 awk:

awk ' == "-" && $NF ~ /^4/ { ++freq[] }
END { for (i in freq) print freq[i], i }' file
2 William
3 John