Linux FAQ : awk ( 讀取列 )

2022/05/28閱讀時間約 2 分鐘
垂直加總資料
awk '{sum += $1} END {print sum}'
  • 若數字太大,出現 E 的符號,可以用 printf 來印
awk '{sum += $10} END {printf "%f\n", sum}'
條件
awk '{if ($2 > 300 && $2 < 500) {print $0}}' datafile # if 限定條件
範例 :
echo `awk -v x=1 -v y=5 'BEGIN{printf "%.2f\n",x/y}'`
顯示 :0.20

說明:
通過命令行傳遞參數列表,gawk從該列表中獲取參數值:x=2.45,y=3.123。 乘法運算完成後,printf函數格式化並顯示運算結果,保留小數點後兩位數, 並將輸出賦給變量product。
判斷 字串 是在第幾個欄位
awk 搭配 for , if , printf
範例 iostat 要找尋 %util
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
iostat -x 1 6 > $dir/$io_chk  
x=cat $dir/$io_chk | grep "%util" | awk '{ for(i=1;i<=NF;i++) 
 { if ($i == "%util") printf("%d", i-1) } exit 0 }'  
x=$(( $x + 1 ))
    work b
    work b
    留言0
    查看全部
    發表第一個留言支持創作者!