行内で一意に並べ替え

行内で一意に並べ替え

行で一意のソートを実行する方法を提案できますか?私は次の情報を持っています:

Special   c1,c2,c5,c7,c1,c2   
Special2  C6

Special(これはとの間のタブ文字ですc1...。)

私は次の出力が欲しい:

Special   c1,c2,c5,c7  
Special2  C6

どうすればいいですか?

ベストアンサー1

使用この回答

perl -MList::MoreUtils=uniq -laF'\t' -ne '
    $F[1] = join(",", uniq(sort(split(",", $F[1])))); print join("\t", @F)'

外部パッケージによって異なります。リスト::追加ユーティリティ。外部依存関係をインストールしたくない場合は、uniq機能を再実装することをお勧めします。Perlコード数行。 (macOSベースシステムの一部としてインストールされているようですが)

おすすめ記事