本篇文章腮鞍,續(xù)上一篇文章《AWK 初級篇》。
實戰(zhàn)(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分的數(shù)據(jù)。
[root@vagrant-centos65 awk]# awk '$3 >= 90 {print $0}' score.txt
Abel Maths 98
Rahul Chinese 90
//取出成績 >= 90分 and <=95的數(shù)據(jù)跛梗。
[root@vagrant-centos65 awk]# awk '($3 >= 90) && ($3 <= 95) {print $0}' score.txt
Rahul Chinese 90
//取出成績 <= 86分 或者 >=96的數(shù)據(jù)。
[root@vagrant-centos65 awk]# awk '($3 <= 86) || ($3 >= 96) {print $0}' score.txt
Abel Maths 98
Byron English 85
//計算總分數(shù)(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
//統(tǒng)計相同的次數(shù)棋弥,并且按照重復(fù)次數(shù)排序
[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
溫馨提示:
如果想把內(nèi)容寫入到文件中核偿,可在命令后添加 “> 文件名” 即可。
Thanks ~