重複プレフィックスのマージ

重複プレフィックスのマージ

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

Bug123:c:SomeComment
Bug222:c:SomeOtherComment
Bug123:c:SecondComment

私は以下を作らなければなりません:

Bug123
    SomeComment
    SecondComment
Bug222
    SomeComment

Bashを使用すると、これを行う簡単な方法が思い出されないようです。どんなアイデアがありますか?

ベストアンサー1

$ awk 'BEGIN {FS=":"} {comments[$1][NR]=$3} END {for (bug in comments) { print bug; for (comment in comments[bug]) { print "    ",comments[bug][comment] } } }  ' /path/to/input
Bug123
     SomeComment
     SecondComment
Bug222
     SomeOtherComment

これは、入力ファイルを読み取るときに多次元配列を設定し、次に「エラー」が表示される順序で結果データを繰り返すことによって行われます。わずかな調整で外部配列を整列させるように変更できます。

おすすめ記事