我想將大型壓縮的CSV文件分割成多個較小的gzip文件,在線邊界上分割。有沒有一種有效的方法來讀取bash中的行輸入?
我試圖用一段時間讀管道gunzip到一個bash腳本讀LINE。該腳本寫入到後臺gzip進程正在重新壓縮的命名管道中。每隔X個字符讀取一次,我關閉FD併爲下一個分割重新開始一個新的gzip過程。
但是在這種情況下,腳本在讀取LINE時佔用了90%的CPU,因爲在這裏讀取效率非常低(我知道它使系統調用一次讀取1個字符)。
有關這樣做的任何想法?我希望gzip消耗大多數cpu。
我寧願這樣做,沒有大量寫入磁盤的分割需要。這些是巨大的文件。 –
重新壓縮後,我還有一個捲曲上傳步驟。因此,按照拆分程序 –
@DavidParks查看更新後的答案會更有效率。 – peterph