假设我有一个类似下面的txt文件(显然不是'文本文本',我只是显示它是无关文本的块)
text text text
text text text
text text text
important section age=30
name=mike
text text text
text text text
text text text
我想解析它并仅向csv输出'重要部分',以便我的csv看起来如下所示,即一列中的年龄和另一列中的名称
age name
30 mike
我应该怎么做? Perl的?桑达?我对这两者都不熟悉,但希望有一个直截了当的解决方案。
Choroba实际上对我完全回答了上述问题,但我担心我过度简化了我的实际文本文件,它更像是下面
Something:
this
Something else:
that
Something else:
etc.
Sales
2011 Sales:
€3,000
()
2010 Sales:
€2,000
()
2011 Growth Rate:
50.00%
Contact Details
我理想的输出是
2011 Sales 2010 Sales 2011 Growth Rate
3,000 2,000 50.00%
不幸的是,这使事情变得非常复杂。输出不必与上面完全相同,但尽可能接近
答案 0 :(得分:1)
Perl解决方案。它标志着我们是否在重要部分。重要的一切都记在一个阵列中并在最后打印出来:
perl -nE '$i = 1 if s/important section //;
push @t, [$1, $2] if $i and /(.*)=(.*)/;
}{
for my $i (0, 1) {
say join "\t", map $_->[$i], @t
}' file.txt