2011-08-08 69 views
9

我寫了一個文件處理程序,現在需要從一個壓縮文件讀取(。廣州解壓文件可能會爲2TB大),使用sed的一個壓縮文件

是否有壓縮一個sed相當於像(ZCAT/CAT)或其他文件,這將是做有效以下

ONE=`zcat filename.gz| sed -n $counts` 

$計數的最佳方法:計數器讀(逐行)

上述方法的工作原理,但相當因爲我需要讀取每行並在特定字段上執行匹配,所以對於大文件來說速度慢。

感謝

編輯

雖然沒有直接的幫助,這裏有一組zcommands

http://www.cyberciti.biz/tips/decompress-and-expand-text-files.html

+1

無論如何,處理壓縮文件將會很慢。 – Nobody

+3

我的意見是,unziping文件和通過管道閱讀**是**暫時打開ziped文件並獲得結果的最有效的方法。完成後,您不必花費時間重新整理文件。通過確保你的'sed'代碼被完全優化,或者更可能使用awk,perl,python之一來進行計算,你更有可能提高整體操作的效率。祝你好運。 – shellter

+0

謝謝..如果未壓縮,文件大小將跨越2TB ..因此它對我的基礎設施不可行.. – learner

回答

3

那麼你要麼可以有更快的速度(即使用無壓縮文件)或更多的自由空間(即使用壓縮文件和顯示的管道)...對不起。使用壓縮文件將始終存在開銷。

2

如果你理解壓縮格式的內部結構,你可能會寫一個模式匹配器,它可以對壓縮數據進行操作,而不需要完全解壓縮,而是通過簡單地從壓縮數據中確定模式是否存在在給定的一塊解壓縮數據中。

如果模式有任何複雜性,這聽起來像一個相當複雜的項目,因爲您必須處理通過兩個(或多個)單獨解壓縮的輸出組合來滿足模式的情況。