000-hello awk

■セットアップ

Cygwin の gawk を使うものとする

■入力ファイル

$ cat test.csv

1,ringo,100,3

2,banana,150,2

3,mango,300,1

■1カラム目だけ出力する

$ gawk -F , '{print $1}' test.csv

1

2

3

■各カラムをそのまま出力する。区切り文字は半角カンマとする。

$ gawk -F , '{print $0}' test.csv

1,ringo,100,3

2,banana,150,2

3,mango,300,1

■各カラムを連結して出力する。区切り文字は半角カンマとする。

$ gawk -F , '{print $1","$2","$3}' test.csv

1,ringo,100

2,banana,150

3,mango,300

■3カラム目と4カラム目をかけ算して出力

$ gawk -F , '{print $0","$3*$4}' test.csv

1,ringo,100,3,300

2,banana,150,2,300

3,mango,300,1,300

■3カラム目と4カラム目のかけ算を合計して出力

$ gawk -F , 'BEGIN{} {goukei+=$3*$4} END{print goukei}' test.csv

900

■3カラム目と4カラム目のかけ算の平均を出力

$ gawk -F , 'BEGIN{} {count++; goukei+=$3*$4;} END{print goukei/count}' test.cs

v

300

■AWK プログラムを別ファイルにして実行する

$ cat hello.awk

BEGIN{}

{count++; goukei+=$3*$4;}

END{print goukei/count}

$ gawk -F , -f hello.awk test.csv

300