명령의 출력에 나오는 특정 단어 (C7STH, C7ST2C)의 '번호'를 찾아야합니다. 이 명령은 '고정 된'텍스트로 시작하고 끝납니다. 아래에서와 같이 START & END를 시작하십시오. 이 명령은 로그 파일의 다른 노드에 대해 여러 번 반복됩니다. (/^START을 $/.../^ END을 $ /) 각 명령의 출력을 얻을 경우Perl에서는 플립 플롭 연산자를 사용하여 직접 캡처 한 데이터에 'grep'명령을 적용 할 수 있습니까?
...
START
SLC ACL PARMG ST SDL SLI
0 A1 17 C7STH-1&&-31 MSC19-0/RTLTB2-385
1 A1 17 C7STH-65&&-95 MSC19-0/RTLTB2-1697
SLC ACL PARMG ST SDL SLI
0 A2 0 C7ST2C-4 ETRC18-0/RTLTB2-417
1 A2 0 C7ST2C-5 ETRC18-0/RTLTB2-449
2 A2 0 C7ST2C-6 ETRC18-0/RTLTB2-961
...
END
....
I는 (플립 플롭 연산자를 사용하고 . 이제
- 은 줄 단위로 이동하지 않고이 데이터를 '그렙'를 할 수있는 방법이 있나요?처럼 내가 '그렙'를 배열로 'START'와 'END'사이의 모든 텍스트를 얻을 할 수 이쪽에?
또한 성능 측면에서 볼 때 플립 플롭 연산자를 사용하여 if 블록을 여러 수준으로 유지하는 것이 좋습니다. 당신이 코드 예제를 제공하지 않기 때문에 (
my $number = grep {/particular word/} grep {/START/../END/} <>;
난에 인수로 전달되는 다이아몬드 연산자를 사용하여 로그 파일을 가정했습니다
견본을 제공해 주시겠습니까? – Zaid
관련 질문 : http : // stackoverflow.co.kr/q/8273383/133939 – Zaid
Zaid : 어떻게 그렇게됩니까? 나는 'START'와 'END'사이의 텍스트가 임의의 수의 줄이라고 가정합니다. – flesk