列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
。