スポンサーリンク

awkの配列の要素の削除方法

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

※MACターミナル(BSD系)での動作確認です。
awkの配列は連想配列となっていて、配列の要素を削除することができます。
下記のような形式で書くことにより、配列の要素を削除できます。

delete 配列の要素

例えば、配列arrayのインデックスが2の要素を削除したい場合は、下記のように書きます。

		delete array[ 2 ]



配列自体を削除する場合です。
参考:awkで配列自体を削除する場合もdeleteでOK

スポンサーリンク

サンプルコード

サンプルコードです。
まずは、"awk str out"をそれぞれsplitで配列arrayに格納します。
その後、配列arrayのインデックスが2の要素を削除します。

cat in.txt | awk '		
	BEGIN{
		split( "awk str out " , array, " " )
		for( i in array ) {
			printf "array[%s]=%s " , i , array[ i ]
		}
		printf "\nインデックスが2の要素を削除\n"
		delete array[ 2 ]
		for( i in array ) {
			printf "array[%s]=%s " , i , array[ i ]
		}
	}
'

実行すると、下記のようにインデックスが2の要素が削除されます。
削除前と削除後に、print出力で配列の全ての要素を出力しています。
削除後には、インデックスが2の要素が削除されて出力されていないのが確認できます。

 $ ./sample.awk 
array[2]=str array[3]=out array[1]=awk 
インデックスが2の要素を削除
array[3]=out array[1]=awk

スポンサーリンク