Shell-Script
當文件有單(長)行時使用 GNU Parallel
我有一個文件,它是一個 HTML 文件,其中包含一個
<table>
我想從中提取數據並輸出到 csv 的文件。這個文件有
544609657
字元,大約 545 兆字節,都在一行中。我設法通過使用
sed
和進行許多字元串替換將數據提取到 csv 中,但我想通過使用 GNU 並行來加快速度。考慮到它是單行文件,這可能嗎?我在下面的嘗試並沒有提高處理速度,也沒有提高記憶體使用率:
parallel -a table.html --pipepart 'sed -e [...etc.]' > table.csv
或者
cat table.html | parallel --pipe 'sed -e [...etc.]' > table.csv
我猜問題是因為文件只有一行。如果是這樣,我可以使用哪些策略來更有效地處理文件?
你有完全正確的想法。
你只需要學習
--recstart
:parallel --pipepart --recstart '<tr>' -a big --block -10 'sed ...' > table.csv
這裡我們假設您的 HTML 表格的每一行都以
<tr>
.