如何使用Perl正则表达式在数据记录中显示某些行?

时间:2011-04-06 19:26:52

标签: perl

我有以下数据记录格式,并希望以不同的格式进行格式化。

使用@符号

的原始数据记录
@dldldldld
dldldldldldl
windows
dfjldfldkldsjfl
difkjdljfdlsfld
fdlsjfdlskfdlsfd

并希望输出删除@符号....

dldldldld                windows
                         dfjldfldkldsjfl
                         difkjdljfdlsfld
                         fdlsjfdlskfdlsfd

这是我开始的代码,但无法让它工作......

#!/usr/bin/perl

use warnings;
use strict;


open 'FH','<',"/reformat.txt" or die "Unable to open file !";


$/='\@.*';

   while(<FH>)
   {               
      $_ =~ s/(.*?)(^windows[^\n]*)(.*)/$2$3/ms;
       print;
   }

1 个答案:

答案 0 :(得分:2)

open my $fh,'<', "/reformat.txt" or die $!;

while (<$fh>) {
    print if s/@// or /^windows/ .. 0;
}