awkから重複レコードを削除し、その行を削除したいと思います。

awkから重複レコードを削除し、その行を削除したいと思います。

列2で重複レコードを確認し、awkからこの行を削除したいと思います。

create a
delete a
create b
create c
delete c
create d
delete f
create f
create g
create h

期待される出力

create b
create d
create g
create h

awkでこのコマンドを試しましたが、反対方向に実行されましたが、正確な結果は出ませんでした。

注:AWKは必須ではありません。

awk -F" " '{ if( (++count[$2]==2) ) print  }'

ベストアンサー1

「重複レコード」は、連続した行で繰り返されることを意味すると仮定します。それ以外の場合は、ファイル全体の一意のレコードを考慮するには、2番目のフィールドのデータを最初にソートします(sort -k 2,2 file)。

使用uniq:

$ uniq -f 1 -u file
create b
create d
create g
create h

-f 1比較を実行すると、最初のスペースで区切られたフィールド()を無視し、一致するすべての行を出力します。いいえ連続した行に対して()を繰り返します-u

おすすめ記事