我有一個非常我正在使用grep
處理大型壓縮文件。打印行號模1000000
zcat blah.gz | grep -e pattern | gzip -c > pattern.gz
我想打印的東西stderr
爲每處理萬條左右輸入線,只是爲了跟蹤進度。有任何想法嗎?
我有一個非常我正在使用grep
處理大型壓縮文件。打印行號模1000000
zcat blah.gz | grep -e pattern | gzip -c > pattern.gz
我想打印的東西stderr
爲每處理萬條左右輸入線,只是爲了跟蹤進度。有任何想法嗎?
嘗試pv
。它默認爲字節,但有一個開關來使它成爲線。
更換的grep有:
perl -ne 'print if /pattern/; print STDERR "." if $. % 1000000 == 0'
的mbuffer(1)
工具可能是東西給你。引用一些摘要:
mbuffer工具用於緩衝數據流並向用戶顯示I/O速率和摘要。這對於將備份寫入 快速磁帶驅動器或通過網絡進行流式傳輸尤其有用。如果使用得當, 它可以防止緩衝區欠載並加速整個備份或傳輸過程。
運行它通過AWK:
zcat blah.gz | awk 'BEGIN {x = 1}; {if ((x++ % 1000000) == 0) print x " " $0 > "/dev/stderr"; print $0 }' | grep -e pattern | gzip -c > pattern.gz
...乾杯! ......現在我只希望有一個'zpv'。 – badroit
沒有'zpv'我知道,但是因爲'pv'與二進制數據一起工作,您可以切換它和'zcat':'pv infile [s] | zcat | grep ...',並且因爲它可以告訴文件的大小,你應該得到一個確定的進度條和一個相當準確的ETA。 – Kevin