最初の 3 つの列値に基づいて重複行を削除します。

最初の 3 つの列値に基づいて重複行を削除します。

次の内容を含むファイルを受け取りました。

902461360 81636718 32863608 0 正規職 902492248 81415224 32775337 0 臨時職 902495059 81686374 32881485 8 4 14 82 0 社員サプライヤー902504989 81675052 32877123 0 社員サプライヤー902532086 81691300 32884527 0社員サプライヤー902723910 81690082 33 900 8 2 32882735 0 従業員供給ビジネス

最初の3つの値は他の行で重複する可能性があります。あるインスタンスは維持し、もう一方の重複エントリは削除したいと思います。

出力は次のようにする必要があります

902461360 81636718 32863608 0 正規職 902492248 81415224 32775337 0 臨時職 902495059 81686374 32881492 80 71 23 0従業員サプライヤー90 253 20 86 81 691 300 32 884 527 0従業員サプライヤー90 272 39 10 81 690 082 32 882 735 0正規従業員

答え1

頑張ります

awk '!a[$1 $2 $3]++ { print ;}' file

どこ

  • !a[$1 $2 $3]++この値は、最初に見つかったときにtrueと評価されます。

バラよりawk '!a[$0]++' はどのように機能しますか?詳細については。

関連情報