このawkステートメントを説明してください。

このawkステートメントを説明してください。

昨日、2つのファイルをマージする方法を検索し、1つの部分を見つけawkました。

単純なマージが必要なので、sort -uこの方法ではありませんが、以下のコードは機能します。

誰かがこのawkコードの機能を説明できますか?

awk '!a[$0]++' file_1 file_2

ベストアンサー1

!a[$0]++      Remove duplicate, nonconsecutive line

これはawkの1行のコードです。関連配列「a」(配列は常にAwkで関連付けられている)に示されている行を登録し、同時にその行を見たことがないかどうかをテストします。以前にその行を見たことがある場合は、a[line]> 0 と !a[line] == 0 です。

falseと評価されるすべての式は機能せず、trueと評価されるすべての式は「{print}」と同じです。空のステートメント "a[$0]" は配列に要素を生成します。

awkチェックの詳細これ

おすすめ記事