2017-06-02 13 views
0

レッツは、私は「」繰り返しシェルグループ化ファイルの繰り返しパターン

a,anything,keyboard - monitor 
b,anything,mouse 
c,anything,door 
d,anything,keyboard 

パターンをしたい、私は結果として一つのファイル

a,anything,keyboard 
b,anything,mouse 
c,anything,door 
a,anything,monitor 
d,anything,keyboard 

を持っていると言うと、私はとして「キーボード」と「監視」をマージしたいですその結果

私の質問は、(この例では、単語を追加すること

を「監視」違ういただきまし追加する1行に各行の先頭に繰り返されるパターン(この例では、「A」)をマージする方法であります猫file.csvになり|カット-d '' -f1 |ソート-u 結果:

a 
b 
c 
d 

私は結果が欲しい:

a,anything,keyboard - monitor 
b,anything,mouse 
c,anything,door 
d,anything,keyboard 
+1

どの部分? – Inian

+0

私は質問を増やしました;) – bein

+1

キーの組み合わせに対して複数の値を収集する方法については、おそらく多くの重複がありますが、正確に重複するものをすぐに見つけることはできませんでした。これは珍しい問題ではありません。以前の同様の質問を検索することをお勧めします。 – tripleee

答えて

1

私はそれを呼ぶだろうグループ化なしソート

のgawk(GNU awkの)解決策:

awk -F, 'BEGIN{ PROCINFO["sorted_in"]="@val_str_asc" }{ a[$1]=($1 in a)? a[$1]" - "$3 : $0 } 
     END{ asort(a); for(i in a) print a[i] }' file 

出力:あなたがここに実現する必要が_sorting_の

a,anything,keyboard - monitor 
b,anything,mouse 
c,anything,door 
d,anything,keyboard 
関連する問題