如果带有sed或awk的文本文件中的$ 2< 25则打印行

时间:2012-12-07 08:22:24

标签: sed awk

我想从文本文件中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

2 个答案:

答案 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