2015-01-21 2 views
-1

<div class="AA"> <div class="clear"></div> 사이의 파일에서 행을 추출하려고합니다.awk는 두 개의 일치 사이의 행을 표시합니다.

sedgrep의 정규식도 환영합니다.

업데이트

다음

내 큰 XML 파일의 일부입니다

RUBBISH 
RUBBISH 
. 
. 
. 
    <div class="span9"> 
      <div class="results-count">AAA</div> 
    <div class="AA"> 
     <div class="A"><a href="/TEST">BBB</a> 
     </div> 
     <div class="BB"><span>CCC</span><br/><a href="/TEST1" class="B">DDD</a> 
     <div></div><span>EEE</span><br/><img src="TEST2" title="C"/><a href="/TEST3" class="D">FFF</a>, 
    <a href="/TEST4" class="E">GGG</a> 
     <div class="clear"></div><a href="/TEST5" class="details">Details</a> 
     </div> 
     <pre>HHH</pre> 
     <div class="clear"></div> 
    . 
    . 
    . 
    <div class="span9"> 
      <div class="results-count">AAA</div> 
    <div class="AA"> 
     <div class="A"><a href="/TEST">BBB</a> 
     </div> 
     <div class="BB"><span>CCC</span><br/><a href="/TEST1" class="B">DDD</a> 
     <div></div><span>EEE</span><br/><img src="TEST2" title="C"/><a href="/TEST3" class="D">FFF</a>, 
    <a href="/TEST4" class="E">GGG</a> 
     <div class="clear"></div><a href="/TEST5" class="details">Details</a> 
     </div> 
     <pre>HHH</pre> 
     <div class="clear"></div> 


RUBBISH 
RUBBISH 


    <div class="span9"> 
      <div class="results-count">AAA</div> 
    <div class="AA"> 
     <div class="A"><a href="/TEST">BBB</a> 
     </div> 
     <div class="BB"><span>CCC</span><br/><a href="/TEST1" class="B">DDD</a> 
     <div></div><span>EEE</span><br/><img src="TEST2" title="C"/><a href="/TEST3" class="D">FFF</a>, 
    <a href="/TEST4" class="E">GGG</a> 
     <div class="clear"></div><a href="/TEST5" class="details">Details</a> 
     </div> 
     <pre>HHH</pre> 
     <div class="clear"></div> 
    . 
    . 
    . 
그렙을 통해
+0

하기이를 확인할 수 있습니다 : HTTP : //stackoverflow.com/questions/12918292/g rep-access-multiple-lines-two-between-patterns 사이의 단어 찾기 – qqibrow

+0

@Mortez는 샘플 파일을 제공합니다. –

답변

2
awk '/<div class="clear"><\/div>/{p=0} p{print} /<div class="results-count">/{p=1}' 
+0

고맙습니다 ... 거대한 XML 파일에이 패턴이 여러 개 있습니다 ... 어떻게해야합니까? – MLSC

+0

당신이해야 할 일은 당신의 문제를보다 자세하게 설명하는 것입니다. 내 코드는 여러 블록에 대해 작동하지만 원하는대로 할 수 없으므로이 코드가 아직 수행하지 않았 으면 좋겠습니까? – Amadan

+0

업데이트를 확인하십시오 ...이 블록과 추가 xml 태그가 많이 있습니다. 그러나 나는이 블록을 원한다. – MLSC

1

,

$ grep -ozP '(?s)(?:\n|^)\s*<div class="results-count">[^\n]*\n\K.*?(?=\n\s*<div class="clear"></div>)' file 
<div class="AA"> 
    <div class="A"><a href="/TEST">BBB</a> 
    </div> 
    <div class="BB"><span>CCC</span><br/><a href="/TEST1" class="B">DDD</a> 
    <div></div><span>EEE</span><br/><img src="TEST2" title="C"/><a href="/TEST3" class="D">FFF</a>, 
<a href="/TEST4" class="E">GGG</a> 

ReGex DEMO

관련 문제