변수에 HTML 묶음을 축적 한 gawk 스크립트가 있습니다. 이제 시스템 명령을 통해 lynx로 파이프해야합니다.필터링되지 않은 텍스트를 awk 시스템 명령의 표준 입력으로 배관
(while read LINE;
가) 격렬하게 (나쁜 느린했다 ... AWK 나쁜 솔루션입니다 말해 주시기 때문에,이 2 소요됩니다) 내가 AWK이 시도
을 :
cmd = sprintf("bash -c \'lynx -dump -force_html -stdin <<< \"%s\"\'", html)
system (cmd)
나쁜 아이디어는 단순한 테스트 케이스가 작동하더라도 원시 HTML, 특수 문자 문제 및 문자열 종료 문제가 많으며 이스케이프 내에서 이스케이프 내에서 이스케이프가 복잡 해지는 것입니다.
lynx는 stdin에서 무엇을 던져도 처리 할 수 있습니다. 명령 행을 통해 awk을 stdin으로 가져올 수는 없지만 다루기 힘든 해결책처럼 보입니다.
내가 원하는 것은 HTML 블록 사이의 구분 기호로 큰 텍스트 파일에서 HTML을 구문 분석하는 것입니다 경우 AWK에서 (내 최종 목표에 대한 세부 사항을 추가)
편집은 좋은 방법이 아니다. 필자는 HTML의 각 블록을 lynx에 전달하여 형식을 지정하고 새로운 큰 텍스트 파일로 덤프해야합니다.
예 입력 (다른 시스템에서 덤프)
**********URL: http://some/url
<html>
<head><title>Any 'ol HTML document</title</head>
<body>
<p>With pretty much any character you can imagine at some point</p>
<p>I'm using lynx to strip off the HTML and give me a nice format</p>
</body>
</html>
**********URL: http://another/url
<html><head><title>My input file provides a few 100,000 such html documents</title></head>
<body/></html>
각 HTML 문서 lynx -dump
통해 공급한다. Lynx는 파일 (예 : 명명 된 파이프 또는 파일이 옵션 임) 또는 stdin (-stdin 옵션 사용)에서 HTML을 읽을 수 있습니다.
내 출력은 다음과 같습니다
**********URL: http://some/url
Any 'ol HTML document
With pretty much any character you can imagine at some point
I'm using lynx to strip off the HTML and give me a nice format
**********URL: http://another/url
My input file provides a few 100,000 such html documents
http://mywiki.wooledge.org/XyProblem –
찬성이, 그 좋은 답변입니다 및 나는 계속 나아갈 것이다. 그러나 awk는 크고 상대적으로 초보자이기 때문에 묻지 않고 확실히 알 수 있습니다. 너는 그것을 말할만큼 충분히 awk을 안다? –
'HTML 묶음'이 무엇인지, 그리고 샘플 입력/출력에서'lynx '가 할 것으로 기대되는 것에 대해 자세히 설명해 줄 수 있습니까? 또한 - 오늘날 gawk (http://www.gnu.org/software/gawk/manual/html_node/Two_002dway-I_002fO.html#Two_002dway-I_002fO) 보조 프로세스에 대한 [[| 여기] (http://stackoverflow.com/q/24066356/1259917)) 당신이 사용할 수있는 것처럼 보입니다. – n0741337