awk二十问
Posted 缥缈之旅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk二十问相关的知识,希望对你有一定的参考价值。
---===AWK学习之旅===---
一行命令:
1.打印输入每行的字段总数:
最后一行的字段总数:END{print NF}
每行都显示字段总数: {print NF}
2.打印指定行:
awk ‘NR==3‘ emp.txt
3.打印每行的最后一列:
awk ‘{print $NF}‘ emp.txt
4. 打印最后一行最后一列:
awk ‘END{print $NF}‘ emp.txt
awk ‘{field = $NF} END {print $field}‘ emp.txt
5.打印字段数量大于4的所有行
awk ‘NF > 4‘ emp.txt
6.打印出每行最后一个字段值>4
awk ‘$NF>4‘ emp.txt
7. 打印出所有字段数量
awk ‘{nf = nf + NF}END{print nf}‘ emp.txt
8.打印含有某关键字的行总数:
awk ‘/Mary/{lines = lines + 1}END{print lines}‘ emp.txt
9.打印出第一个字段最大的行:
awk ‘$1 > maxfield{maxfield = $1;maxline = $0}{print maxfield,maxline}‘ emp.txt
10.最少有一个字段,空行不打印
awk ‘NF>0‘ emp.txt
11.打印每行字段的总数及每行内容:
awk ‘{print NF,$0}‘ emp.txt
12.打印每行字符总数大于12
awk ‘length($0)>12‘ emp.txt
13.打印每行指定字段
awk ‘{print $2,$1}‘ emp.txt
14.交换两个字段的顺序,并打印所有行:
awk ‘{temp = $1;$1 = $2; $2 = temp;print}‘ emp.txt
15.第一列被行号替换,并打印所有行:
awk ‘{$1 = NR;print }‘ emp.txt
16.删掉第二列,并打印所有
awk ‘{$2 = "";print }‘ emp.txt
17. 翻转行字段的顺序,并打印
awk ‘{for(i=NF;i>0;i=i-1) printf("%s ",$i); printf("\n")}‘ emp.txt
18.打印每行数字字段累加和:sum
[[email protected] awkdir]# awk ‘{for (i=1;i<=NF;i=i+1) sum = sum + $i ;print sum}‘ emp.txt
4
7.75
21.75
46.75
74.25
96.5
19.打印所有行中数字字段相加的和:sum
[[email protected] awkdir]# awk ‘{for (i=1;i<=NF;i=i+1) sum = sum + $i}END{print sum}‘ emp.txt
96.5
20.打印每行值:绝对值
awk ‘{for (i=1;i<=NF;i=i+1) if($i<0) $i=-$i;print}‘ emp.txt
以上是关于awk二十问的主要内容,如果未能解决你的问题,请参考以下文章