sed
またはを使用して、一致するパターンを 2 回目の出現から削除しようとしていawk
ます。入力ファイルには、次の情報が含まれています。
abc
def
abc
ghi
jkl
abc
xyz
abc
abc
2 番目のインスタンスからパターンを削除します。出力は次のようになります。
abc
def
ghi
jkl
xyz
から取得:unix.com
を使用awk '!x[$0]++'
すると、重複する行が削除されます。x は配列であり、0 に初期化されます。x のインデックスは $0 です。$0 が最初に一致する場合、x[$0] の値に 1 を加えた値が x[$0] になり、現在は 1 です。ここで ++ は " suffix ++",0 が返され、追加されます。したがって、!x[$0] は true であり、デフォルトで $0 が出力されます。$0 が複数回出現する場合、! x[$0] は false になるため、$0 は出力されません。