ファイルが1行(長い)の場合は、GNU Parallelを使用してください。

ファイルが1行(長い)の場合は、GNU Parallelを使用してください。

<table>抽出してcsvに出力したいデータを含むHTML文書があります。

ファイルには544609657約545MBの文字がすべて1行にあります。

私は多くの文字列置換を使用して実行してデータをcsvに抽出しましたが、sedGNU並列処理を使用して速度を上げたいと思います。単一行ファイルであることを考慮すると、これは可能ですか?

次の試みは、処理速度やメモリ使用量を向上させませんでした。

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

または

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

問題はファイルに1行しかないからだそうです。それでは、ファイルをより効率的に処理するためにどのような戦略を使用できますか?

答え1

あなたの考えは絶対に正確です。

あなたは学ぶ必要があります--recstart

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

ここでは、HTMLテーブルの各行がで始まると仮定します<tr>

関連情報