全部, 我有一个文本文件包括:
set_global_assignment -name FA "titan VII"
set_global_assignment -name DE ASDF3HF
我想用perl找出并提取FA的结果(结果:titan VII)和DE(结果是:ASDF3HF)。我只知道正则表达式的基础,我不习惯做表达式并存储此输出。请帮忙 非常感谢
答案 0 :(得分:2)
你可以这样做:
use strict;
use warnings;
my ($fa,$de);
open DATA,'<', $file or die
while(<DATA>) {
if(/set_global_assignment -name FA\s(.*)/) {
$fa = $1;
}elsif(/set_global_assignment -name DE\s(.*)/) {
$de = $1;
}
}
print "FA = $fa\nDE = $de\n";
答案 1 :(得分:2)
这是一种方法:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %result;
while(<DATA>){
$result{$1} = $2 if /^set_global_assignment -name (.+?)\s+(.+)$/;
}
print Dumper \%result;
__DATA__
set_global_assignment -name FA "titan VII"
set_global_assignment -name DE ASDF3HF
<强>输出:强>
$VAR1 = {
'DE' => 'ASDF3HF',
'FA' => '"titan VII"'
};