내 작업을 해결할 수있는 모든 것이 sed/awk/grep /와 도움이 필요합니다. 큰 파일이있어서 여러 개의 연속 된 줄을 추출해야합니다. <DN>
패턴 사이에 여러 줄 인쇄 (첫 번째 패턴은 고유하지 않음)
과 끝 패턴 : </GR>
사이에 몇 줄이 같은 :
sed -n '/\<DN\>/,/\<\/GR\>/p'
:이 시도했습니다
<DN>234</DN>
<DD>sdfsd</DD>
<BR>456456</BR>
<COL>6575675 sdfsd</COL>
<RAC>456464</RAC>
<GR>sdfsdfsFFFDd</GR>
나는 패턴을 시작하게
및 기타 여러 항목 (awk 및 sed 사용). 괜찮아 작동하지만, 문제는 소스 파일, <DN>
와 라인의 무리의 끝에 </GR>
없이 시작하는 라인을 포함 할 수 있다는 것입니다 그리고 결국 또 다른 정상을 가진 부분을 시작합니다
<DN>234</DN> - unneded DN
<AB>sdfsd</AB>
<DC>456456</DC>
<EF>6575675 sdfsd</EF>
....really large piece of unwanted text here....
<DN>234</DN>
<DD>sdfsd</DD>
<BR>456456</BR>
<COL>6575675 sdfsd</COL>
<RAC>456464</RAC>
<GR>sdfsdfsFFFDd</GR>
<RAC>456464</RAC>
<GR>sdfsdfsFFFDd</GR>
<DN>
을 포함하지 않고 </GR>
을 포함하는 로그의 가비지 부분을 어떻게 무시할 수 있습니까?
그리고 다음, 나는 <DN>
시작하여 </GR>
로 끝나는 단일 라인 파일로 </GR>
에 <DN>
에서 여러 조각을 변환해야합니다. 도움이 될 것입니다. 붙어있어
답장을 보내 주셔서 감사합니다. 불행히도 귀하의 제안은 실제 파일에서 작동하지 않았습니다. 어쩌면 시스템에서 바이너리 파일로 취급하기 때문에 grep 명령에 -a 옵션을 추가하여 작동하게해야합니다. 그러나 pcregrep에는 그러한 옵션이 없습니다. –
정확한 파일 내용을 pastebin이나 질문에 게시 할 수 있습니까? –
너무 큽니다, 두려워요. 수백 메가 바이트의 파일에는 내가 추출해야하는 몇 가지 귀중한 데이터 라인이 포함되어 있습니다. 그리고 프로덕션 시스템에서 왔으며 클라이언트 데이터가 들어 있습니다. –