私は最近awkを見つけましたボンオプション。ファイルから重複エントリを削除するのがわかります。どのように機能するかについていくつかの説明を提供できます。
cat tes
1
2
3
1
1
1
3
4
出力を表示するには awk を使用します。
cat tes | awk '!seen[$0]++'
1
2
3
4
答え1
seen
連想配列のランダムな名前です。これはオプションではありません。代わりに、または他のほとんどの名前をa
使用できます。b
コードは!seen[$0]++
テストと増分で構成されます。
seen[$0]
つまり、現在の入力行キーに関連付けられている配列要素の値が0(または空の場合)の場合、次の$0
ブール!seen[$0]
値は本物。
その後、配列の対応するキーに対応する値が$0
増加します。これはテストが次のことを意味します。間違った$0
他のすべてのケースでは、同じ値が見つかります。
テスト効果は本物入力に特定の行が最初に表示されたとき間違った他のすべての時間。
テストにリンクされたタスクがないときはいつでも本物、これ基本ジョブがトリガーされます。デフォルトのジョブは、現在のレコードを印刷する{ print }
or と同じです。この例では、すべてのアカウントと目的に対して現在変更されていない入力行です。{ print $0 }