2013-12-09 3 views
0

이 파일에서 USER 및 PASS라는 단어의 모든 인스턴스를 찾은 다음 두 변수에 각각 나타나는 횟수를 입력하려면 어떻게해야합니까? 감사!패턴 일치 : regex - perl

open MYFILE, '<', 'source_file.txt' or die $!; 
open OUTFILE, '>', 'Header.txt' or die $!; 

$user = 0; 
$pass = 0; 

while (<MYFILE>) { 
    chomp; 

    my @header = split (' ',$_); 
    print OUTFILE "$linenum: @header\n\n"; 

    if (/USER/ig) { 
     $user++; 
    } 

    if (/PASS/ig) { 
     $pass++; 
    } 
} 

위 코드는 새로운 코드입니다. 변수를 0으로 설정하고 변수에 ++ 증분을 사용했습니다. 하지만 정규 표현식의 기능을 확장하는 것에 대한 제안은 아직 공개되어 있습니까? (의미가있는 경우)

+2

해당 문자열 중 하나가 나타날 때마다 카운터를 증가시킬 수 있습니까? –

+0

와우 너무 간단하면서도 효과적입니다. 고마워요, 효과가있었습니다! – user2288

답변

2

간단히 할 수 있습니다.

my $user = 0; 
my $pass = 0; 

while (<MYFILE>) { 
    chomp; 
    my @header = split ' ', $_; 
    print OUTFILE "$linenum: @header\n\n"; 

    $user++ if /user/ig; 
    $pass++ if /pass/ig; 
}