本篇文章,续上一篇文章《AWK 初级篇》。
实战(7个案例)
//测试文本 score.txt(同上一篇)
Aaron Physics 87
Abel Maths 98
Rahul Chinese 90
Buck Biology 87
Byron English 85
Dave History 89
Enoch Chemistry 89
//取出成绩 大于 等于 90分的数据。
[root@vagrant-centos65 awk]# awk '$3 >= 90 {print $0}' score.txt
Abel Maths 98
Rahul Chinese 90
//取出成绩 >= 90分 and <=95的数据。
[root@vagrant-centos65 awk]# awk '($3 >= 90) && ($3 <= 95) {print $0}' score.txt
Rahul Chinese 90
//取出成绩 <= 86分 或者 >=96的数据。
[root@vagrant-centos65 awk]# awk '($3 <= 86) || ($3 >= 96) {print $0}' score.txt
Abel Maths 98
Byron English 85
//计算总分数(BEGIN END 语法)
[root@vagrant-centos65 awk]# awk 'BEGIN{cnt=0}{cnt+=$3} END {print cnt}' score.txt
625
//匹配第三个字符等于c的行
[root@vagrant-centos65 awk]# awk '/^..c/' score.txt
Buck Biology 87
//打印表头
[root@vagrant-centos65 awk]# awk 'BEGIN{print "Name Socre\n----------"} {print $1 "\t" $3}' score.txt
//统计相同的次数,并且按照重复次数排序
[root@vagrant-centos65 awk]# awk '{a[$3]++} END{for(i in a){print i,a[i] | "sort -r -n -k2"}}' score.txt
89 2
87 2
98 1
90 1
85 1
温馨提示:
如果想把内容写入到文件中,可在命令后添加 “> 文件名” 即可。
Thanks ~
网友评论