※MACターミナル(BSD系)での動作確認です。

スポンサーリンク

awkの連想配列

※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-

※MACターミナル(BSD系)での動作確認です。

awkの連想配列では、下記の形式で、keyで指定した配列arrの要素にvalueを格納できます。

arr[key] = value

この仕組みを使うと、文字列の出現回数を簡単にカウントできます。

例えば、下記のように配列arrのkeyにカウントしたい文字列を指定します。

そして、文字列が出現するたびに、カウントしたい文字列で指定した要素の値を0からインクリメントしていきます。

インクリメントされた値が、keyで指定した文字列の出現回数となります。

		arr[文字列]++ 

スポンサーリンク

特定の列の文字列の出現回数をカウントするサンプルコード

例えば、下記のin.txtがあったとします。

 $ cat in.txt 
e awk
f find
g awk
h find 
i grep

下記がサンプルコードになります。
in.txtの2列目の文字列の出現回数をカウントして、最後に配列arrのkeyとvalueをprint出力して、出現した文字列と出現回数を出力します。

参考:awkのfor文処理で配列操作をする方法をメモ

 $ cat sample.awk 
#!/bin/sh
cat in.txt | awk '		
	{
		arr[$2]++ 
	}
	END{
		print "2列目の文字列を出力"
		for ( i in arr ) {
			print i "は" arr[i] "回出現"
		}
	}
'

下記が実行結果になります。
 $ ./sample.awk 
2列目の文字列を出力
awkは2回出現
grepは1回出現
findは2回出現

スポンサーリンク