1列のテキストのみを考慮して重複行を削除する方法は?

1列のテキストのみを考慮して重複行を削除する方法は?

次のファイルがあります。

ICR1 +
ICR1+1+3199 +
ICR1+2526+2828 +
IRT1 +
IRT1+1+1489 +
IRT1+713+937 +
LSR1 -
LSR1+1+1175 -
LSR1+366+638 -
NME1 +
NME1+1+340 +
NME1+2+118 +
PWR1 -
PWR1+1+941 -
PWR1+724+939 -
Q0017 -
Q0017+1+162 -
Q0020 -
Q0020+1370+1513 -
Q0020+1+440 -

最初と2番目の列はタブで区切られます。以下が必要です。

ICR1 +
IRT1 +
LSR1 -
NME1 +
PWR1 -
Q0017 -
Q0020 -

私はフィールド区切り文字「+」でawkを試しましたが、2番目の列でも+が削除されました。

ベストアンサー1

awkのフィールド区切り文字を空白に設定するか、クラシック連想配列ベースの重複+排除を実行できます。

$ awk -F'[ \t+]' '!seen[$1]++' file
ICR1 +
IRT1 +
LSR1 -
NME1 +
PWR1 -
Q0017 -
Q0020 -

おすすめ記事