2013-02-08 4 views
-4

텍스트 파일의 출력을 구문 분석하는 데 문제가 있습니다. 내가 mutliple이 egrep이 유사 검색 할 문자 사이에 파이프 기호를 추가 할 텍스트 파일은perl을 사용하여 문자를 다른 문자로 바꾸기

service entered the stopped state,critical 
service entered the running state,clear 

코드 다음과 같다 :

open(my $data, '<', $Config_File) or die "Could not open '$Config_File" 
my $reg_exp; 
my $severity; 
my @fields=(); 
while (my $line = <$data>) 
{ 
    chomp $line; 
    if(!$line =~ /^$/) 
    { 
    @fields = split "," , $line; 
    $reg_exp = $fields[0]; 
    $severity = $fields[1]; 
    print $reg_exp; 
    } 
} 

#print $fields[0]; 
#last unless defined $line; 

close($data); 

예상 출력

service entered the stopped state|service entered the running state 
+2

일부 입력을 볼 수 있습니까? – squiguy

+1

코드는 묻는 질문과 아무 관련이 없습니다. 둘 다 출력을 가지고 있지 않습니다. 실제 코드와 실제 입/출력으로 실제 질문을하십시오. – pavel

+0

붙여 넣기하는 동안 완전한 질문을 놓쳐서 미안합니다. –

답변

1

을 당신 멀리 떨어져 있지 않다면 실제로 문자열을 연결해야합니다. 가장 간단한 방법은 배열로 $fields[0]을 밀고 입력을 인쇄 할 때까지 기다리는 것입니다. 즉 :

my @data; 
while (my $line = <$data>) { 
    next if $line =~ /^$/;   # no need to chomp 
    my @fields = split /,/, $line; 
    push @data, $fields[0]; 
} 
print join("|", @data), "\n"; 

난 당신이 코드와 다른 뭔가를 달성하기 위해 노력하고 있음을 감지하고, 이것이하는 XY-problem 소위.

+0

답변이 감사했습니다. –

+0

@SandeepKrishnan 안녕하세요. – TLP

관련 문제