ファイルから重複したアイテムを削除する[閉じる]

ファイルから重複したアイテムを削除する[閉じる]

次のファイル.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'

おすすめ記事