0

標準化された形式ではないが、予測可能なツリーのような方法でデータを出力するテキスト ファイルがあります。

次のようになります。

#group 0 size: 4 bs: 7.49113e-101
0 1 2 7 
#group 1 size: 3 bs: 5.31707e-101
3 4 8 
#group 2 size: 2 bs: 6.2351e-101
5 6 
#group 3 size: 1 bs: 1
9 

ここで、このテキスト ファイルのエントリはグループであり、その後にサイズ、スコア、アイテムのラベルが続きます。最初のケースでは、グループ 0 にはラベル 0、1、2、7 (したがって、サイズは 4) が含まれ、スコアは 7.49113e-101 です。

このようなテキスト ファイルを次のようなフラット ファイルの csv に解析する方法を知りたいです。

group | item | score  
0 0 7.49113e-101  
0 1 7.49113e-101  
0 2 7.49113e-101  
0 7 7.49113e-101  
1 3 5.31707e-101  
...

コードを探しているわけではありません。Unix システムで最も簡単な方法でこれを行うために使用できる言語を知る必要があるだけです。

4

1 に答える 1

0

awk は仕事をすることができます:

awk 'BEGIN{OFS="\t"; print "group", "item", "score"}
     $1=="#group"{g=$2; s=$6; next} {for(i=1; i<NF; i++) print g, $i, s;}' data
于 2013-07-25T09:06:55.080 に答える