awkから配列を削除する

awkから配列を削除する

awkでは、ループを使用して配列を消去して空の配列にすることができます。これは配列を削除するのと同じです。

for (key in array) delete array[key];

より簡単な方法がありますか?変数名をスカラーで再利用できるように配列を完全に削除できますか?

ベストアンサー1

文法

delete array

現在のバージョンのPOSIXではサポートされていませんが、ほとんどすべての既存の実装(元のawk、GNU、mawk、およびBusyBoxを含む)はこれをサポートしています。 POSIXの将来のバージョンに追加される予定です。欠陥0000544)。

すべての配列要素を消去する代替方法は、split既存の要素をすべて削除することです。これは移植可能で標準に準拠し、文ではなく式です。

split("", array)

を含むこれらのすべては、delete array元のawk、GNU awk、およびmawkの変数を配列変数として表示します(BusyBox awkではありません)。私が知っている限り、変数が配列として使用される場合、スカラー変数として使用することはできません。

おすすめ記事