2016-08-02 62 views
-9

例如在一个Perl的文件时,它是这样的:如何在perl中匹配一行中的单词并将其删除并分别使用它们?

123 abc xyz 
456 abc sdf 
789 abc ghj 

现在从上面的线我需要单独删除abc和分配

value 1=123 
value 2= xyz 
value 3= 456 
value 4= sdf 

帮助我如何对上述要求编写。

+5

你好Sruthi,你尝试在自己的东西吗?如果您能向我们展示*您尝试的*和*您遇到的问题*,那将会很棒。同时,你也应该检查['如何问'](http://stackoverflow.com/help/how-to-ask) –

+3

这听起来像一个[XY问题](http://meta.stackexchange.com/问题/ 66377 /什么,是最XY-问题)。你想达到什么目的?你能告诉我们你的代码,让我们知道你在做什么吗? – Sobrique

回答

0
#!/usr/bin/perl 

use strict; 
use warnings; 
use 5.010; 

my $count = 0; 

while (<DATA>) { 
    chomp; 
    for (split/abc /) { 
    $count++; 
    say "value $count=", ($count == 1 ? '' : ' '), $_; 
    } 
} 

__DATA__ 
123 abc xyz 
456 abc sdf 
789 abc ghj 

或者,也许更多数据驱动的方法来确定哪些行省略=后的空间:

#!/usr/bin/perl 

use strict; 
use warnings; 
use 5.010; 

my %nospace = (
    1 => 1, 
); 

my $count = 0; 

while (<DATA>) { 
    chomp; 
    for (split/abc /) { 
    $count++; 
    say "value $count=", ($nospace{$count} ? '' : ' '), $_; 
    } 
} 

__DATA__ 
123 abc xyz 
456 abc sdf 
789 abc ghj 
相关问题