如何在不使用 "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
我有文件
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