.tsv
Linuxシステムには、さまざまなタイプ(文字列、数字)のカンマ区切り値を含む次の列を含む(タブ区切り列)ファイルがあります。
col1 col2
. NS,NS,NS,true,true
. 12,12,12,13
1,1,1,2 door,door,1,1
独自の価値を維持したいと思います(残念ながら試しましたが失敗しました)。出力は次のとおりです。
col1 col2
. NS,true
. 12,13
1,2 door,1
ベストアンサー1
これは、値文字列を整数インデックスマップに分割して結合するMillerバリアントです。鍵カンマ区切り文字列に戻る):
mlr --tsv put 'for (k,v in $*) {
$[k] = joink(apply(splitnvx(v,","), func(k,v) {return{v:k}}),",")
}' file.tsv
またはperl5の助けを借りてリスト::ユーティリティ基準寸法:
perl -MList::Util=uniq -F'\t' -lpe '
$_ = join "\t", map { join ",", uniq split /,/, $_ } @F
' file.tsv