파일이 한 줄(긴)인 경우 GNU Parallel을 사용하세요.

파일이 한 줄(긴)인 경우 GNU Parallel을 사용하세요.

<table>추출하여 csv로 출력하려는 ​​데이터가 포함된 HTML 문서가 있습니다 .

파일에는 544609657약 545MB의 문자가 모두 한 줄에 있습니다.

많은 문자열 대체를 사용하고 수행하여 데이터를 csv로 추출했지만 sedGNU 병렬 처리를 사용하여 속도를 높이고 싶습니다. 단일 줄 파일이라는 점을 고려하면 이것이 가능합니까?

다음 시도는 처리 속도나 메모리 사용량을 향상시키지 못했습니다.

parallel -a table.html --pipepart 'sed -e [...etc.]' > table.csv

또는

cat table.html | parallel --pipe 'sed -e [...etc.]' > table.csv

문제는 파일에 한 줄만 있기 때문인 것 같습니다. 그렇다면 파일을 보다 효율적으로 처리하기 위해 어떤 전략을 사용할 수 있습니까?

답변1

당신의 생각은 절대적으로 정확합니다.

당신은 배워야합니다 --recstart:

parallel --pipepart --recstart '<tr>' -a big --block -10 'sed ...' > table.csv

여기서는 HTML 테이블의 각 행이 로 시작한다고 가정합니다 <tr>.

관련 정보