次のファイルがあります。
ファイル1:
id1 id6
id5 id2
id2 id3
id6 id500
2番目の列の内部を最初の列の内部と比較すると、2番目と1番目の列の両方にid6とid2が存在することがわかります。しかし、id3とid500は、最初の列ではなく2番目の列に存在します。最初の列には表示されないので、後者をゼロに変更したいと思います。したがって、出力は次のようになります。
出力:
id1 id6
id5 id2
id2 0
id6 0
どんな提案がありますか? 「join」でいくつかのコマンドを試しましたが、目的の結果が得られませんでした。私の実際のデータはかなり大きいです。これは小さな例です。
ベストアンサー1
2段階の解決策 - 最初のステップではフィールド1のすべての値を配列に保存しa
、2番目のステップでは各行を印刷し、2番目のフィールドが配列にない場合は0に設定します。a
awk 'first{a[$1]; next}; {print $1, !($2 in a)? 0: $2}' first=1 file first=0 file