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 回答