awk参考リンク

awk雛形(簡単な処理用、これ以上に何か処理する場合はperl,pythonで対応)

#-------------------------------------------------------------------------------
# awk雛形ファイル
#
# ●awkファイルを引数にした例:
#
#	> ls -al | awk -f hinagata.awk 
#
# ●ワンライナーの例:
#
#   > awk -F":" '{ print $1 " " $3 }' /etc/passwd
#   > ls -al | awk 'BEGIN{total=0} {total=total+$5} END{print total}'
#
#-------------------------------------------------------------------------------
#-----------------------------------------------------------
#初期化処理
#-----------------------------------------------------------
BEGIN{
	#FS:フィールド区切り文字(デフォルトは 複数のスペース、あるいはタブ)
	#ORS:出力レコード区切り文字(デフォルトは改行-> "\n")
	#OFS:出力フィールドセパレータ(出フォルトは単一のスペース-> " ")
	total=0
}

#-----------------------------------------------------------
#メイン処理
#-----------------------------------------------------------
{
	#NR:現在のレコード番号(行数)
	if ( NR == 1 ) {
		#1行目の処理
		print("1行目の処理");
	}

	#NF:フィールド数
	if ( NF > 2 ){
		total=total + $5
	}
	
	#for
	for (x = 1; x <= 4; x++ ) {
		print "loop:"x
	}
	
	#while
	count=0
	while(1){
		count++

		if ( count == 2 ) {
			print("continue");
			continue
		}
		
		if ( count > 3 ) {
			print("break");
			break
		}
	}
	
	
	#正規表現
	if ( $1 ~ /^d/ ) {
		print "先頭がdの場合:"$0
	}
	
}

#-----------------------------------------------------------
#終了処理
#-----------------------------------------------------------
END{
	print "total:"total, "avg:"total/NR
}