로그를 포함하는 파일이 있는데,이 파일은 시스템 페이지에서 페이지 너비를 늘려서 수정할 수 없습니다. 남아있는 유일한 옵션은 파일에서 파일을 수집하고 파일을 편집하는 것입니다. Perl을 사용하여 로그 파일 포맷하기
cat failure.txt
04-05-22 12:57:38 \GINGER.$VOLS01 COBULED.ROM.H01 005056 LDEV 0222 File
$VOLS01.STEPHAN.TABLED, has been stopped
due to a processing error.
04-05-22 12:57:39 \GINGER.$VOLS02 COBULED.ROM.H01 005056 LDEV 0221 File
$VOLS02.STEPHAN.TABLED, has been altered
due to a processing error.
04-05-22 12:57:40 \GINGER.$VOLS08 COBULED.ROM.H01 005056 LDEV 0216 File
$VOLS08.STEPHAN.TABLED, has been rolled back
due to a processing error.
나는 간단한 펄 프로그램을 작성
open $read_failed_log, '<', failure.txt or die "Could not open due to $!";
open $write_failed_log, '>', failure_formated or die "Could not open due to $!";
while($x = <$read_failed_log>){
if(grep /^\S/,$x){
print $write_failed_log "\n";
print $write_failed_log $x;
}else{
print $write_failed_log $x;
}
}
close $read_failed_log;
close $write_failed_log;
그러나 다음과 같이는 원하는 출력을 제공하지 않습니다 원하는 출력 :
cat failure_formated.txt
04-05-22 12:57:38 \GINGER.$VOLS01 COBULED.ROM.H01 005056 LDEV 0222 File $VOLS01.STEPHAN.TABLED, has been stopped due to a processing error.
04-05-22 12:57:39 \GINGER.$VOLS02 COBULED.ROM.H01 005056 LDEV 0221 File $VOLS02.STEPHAN.TABLED, has been altered due to a processing error.
04-05-22 12:57:40 \GINGER.$VOLS08 COBULED.ROM.H01 005056 LDEV 0216 File $VOLS08.STEPHAN.TABLED, has been rolled back due to a processing error.
은 일반적으로 무엇을 필요로하는 것은입니다 로그 라인이 끊어져서는 안됩니다. 각 로그 항목은 failure_formated.txt가 위에 표시된 것처럼 한 줄에 있습니다.
아직도 줄 바꿈을하고있는 것 같습니다. newline을 제거하기 위해'chomp $ x; '를 써 보았습니까? – AntonH
어딘가에'chomp $ x'가 필요하지 않습니까? –
고마워 .. 네 .. 지금은 ... chomp를 추가 한 후 ... – May