1. 程式人生 > >awk二十問

awk二十問

學習 累加 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二十問