awk

Contents


直線データの作成

$ echo $SLOPE $INTERCEPT |\
$ awk 'BEGIN { for (x=-30 ; x<=10 ; x+=0.1) print x,$1*x+$2}''
                  

数字の書式

$ echo $VALUE | awk '{printf "%10.2f\n", $1}'
$ echo $VALUE | awk '{printf "%3.3i/n", $1}'
                  

行番号の表示

$ awk '{printf NR, $1}' $FDAT

ファイルの合計サイズの表示

$ ll ???? | awk '{ SUM = SUM + $5 } END { print SUM }'

区切り文字

$ awk -F":" '{print $1}' $FDAT

指定行数の取り出し

$ awk 'NR==100 {print $0}' $FDAT

log10の計算

log10 関数がないようだ。普通のlogは自然対数なので公式を使って変換。

$ echo 10 | awk '{print log(x)/log(10))'

awkで数字を抽出するときの注意点

書式によるのだろうが,返り値が違った。

$ awk '$1==10{print $1}' $FDAT
$ awk '$1==010{print $1}' $FDAT