0

假设我有一个如下所示的 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

我该怎么办?珀尔?赛德?我对这两个都不熟悉,但希望有一个足够简单的解决方案。

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%

不幸的是,这使事情变得非常复杂。输出不必与上面完全相同,但尽可能接近

4

1 回答 1

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
于 2013-04-09T14:38:09.230 回答