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