2012-03-07 5 views
0

I의 형식입니다 데이터가 있습니다구문 분석은/proc/PID/현재 smaps 출력

START 
... 
... 
END 
START 
... 
... 
END 

내가 일부 데이터 분석을 수행 할 따라서 STARTEND 사이의 라인을 추출하고자한다. 이제 문제는 청크로 데이터를 추출하고자하는 것입니다. 예 : 첫 번째 쌍인 STARTEND 사이의 데이터를 추출한 다음 두 번째 쌍을 분석 한 다음 세 번째 쌍을 분석합니다. 나는 이것을하기 위해 sed를 탐험하고 있었다. 어떻게 이것을 달성하기 위해 sed (또는 다른 도구)를 사용할 수 있습니까?

+2

당신은 더 나은 답변을 얻을 수 있습니다. Sed가 약간 도움이 될 수도 있지만, awk 나 다른 프로그래밍 언어를 사용하는 것이 더 나을 것이다. 행운을 빕니다. – shellter

답변

0

이 당신을 위해 작동 될 수 있습니다

sed '/START/,/END/{/START/{h;d};H;/END/{g;s/\.\.\./foo/gp};d}' file 
START 
foo 
foo 
END 
START 
foo 
foo 
END 

또는이 : 일부 샘플 데이터와 예상 출력을 포함하도록 게시물을 수정할 경우

awk '/START/{p=1;n++};p{if(n==1)sub(/\.\.\./,"foo");if(n==2)sub(/\.\.\./,"bar");print};/END/{p=0}' file 
START 
foo 
foo 
END 
START 
bar 
bar 
END 
관련 문제