ファイル内の重複を削除する

ファイル内の重複を削除する

次のファイルがあります.txt

Plummet
Cherist the day
--
The Transatlatins                <-----------duplicate
Mysteriosa                       <-----------duplicate
--
Angel City;Lara McAllen
Love me right                  
--
The Transatlatins
Mysteriosa                     

順序を変えずに重複を削除するにはどうすればよいですか? 行のスペースも試しましたが、sort順序を変えてもuniq重複は削除されません。

期待される結果:

Plummet
Cherist the day
--
Angel City;Lara McAllen
Love me right               
--
The Transatlatins
Mysteriosa                 

答え1

仮定するとファイルが次の形式であることを意図している

field1\n
field2\n
\n
field1\n
field2\n
\n

つまり、サンプルファイルの最後の行は次のようになります。

Mysteriosa                  Mysteriosa

\n最後のエントリの後に改行があれば、これでうまくいくはずです。

sed '$!N;$!N;s/\n/:/g' file | nl -s"|" | sort -t '|' -k2 | awk -F"|" '!_[$2]++' | sort -n | sed -e 's/.*|//' -e 's/:/\n/g'

答え2

指示:

awk '{if (!seen[$1,$2]++)print $0}' filename

関連情報