Shell-Script

當文件有單(長)行時使用 GNU Parallel

  • April 6, 2021

我有一個文件,它是一個 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>.

引用自:https://unix.stackexchange.com/questions/642939