我想从文本文件中print $1 and $2 if $2<25
。我还需要从所有文件中获得标记小于25的学生总数。我怎么能用awk或sed做到这一点?
students marks
jerry 12
peter 35
john 5
jerry 15
john 10
期望的输出
jerry 12
john 5
jerry 15
john 10
Total no:of students :- 4
答案 0 :(得分:3)
在awk
:
$ awk '$2<25 {print; i++} END{print "\nTotal number of students:- "i}' file
输出:
jerry 12
john 5
jerry 15
john 10
Total number of students:- 4
如果您希望按年级(从最低到最高)排序输出:
$ sort -n -k2,2 file | awk '$2<25 {print; i++} END{print "\nTotal number of students:- "i}'
分类输出:
john 5
john 10
jerry 12
jerry 15
Total number of students:- 4
-n
数字排序;
-k2,2
排序第二个字段。
答案 1 :(得分:2)
awk '$2<25{count++ ; print}END{print "Total No of Students :-",count}' your_file
测试如下:
> awk '$2<25{count++ ; print}END{print "Total No of Students :-",count}' temp
jerry 12
john 5
jerry 15
john 10
Total No of Students :- 4