awk二十問
阿新 • • 發佈:2017-07-27
學習 累加 bsp monit 行號 for awk 輸入 style ---===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二十問