将这个基于树的数据文件解析为平面文件csv的简单方法

时间:2013-07-25 08:38:30

标签: unix text

我有一个不是标准格式的文本文件,但它以可预测的树状方式输出数据。

它看起来像这样:

#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系统上以最简单的方式使用什么语言来做这件事。

1 个答案:

答案 0 :(得分: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