Use Pipeline Viewer to show progress for uncompression of a list of processed files

一曲冷凌霜 提交于 2019-12-11 18:06:31

问题


This is a follow-up question to this question.

I have a list of compressed *.bz files whose content I push through a pipe as follows:

result=$(find . -name '*bz2' -exec bzcat {} + \
        | tee >( some | other | pipeline ) \
        | grep -e "myString" \
        | wc -l)
echo "${result} occurrences found"

This will process the decompressed contents of the files with a sub-pipeline (some | other | pipeline) and at the same time count and return the occurrences of the string myString.

The pipeline works but now I want to display a progress bar using Pipeline Viewer. The progress should be shown as the number of already processed *.bz2 files.


回答1:


If you care more about measuring the speed of find than the speed of the other components (which will eventually exhibit backpressure and slow the measured components down, but this may happen with more lag than you'd like without performance impeded by a smaller -n argument added to xargs):

result=$(find . -name '*bz2' -print0 \
        | pv -0 --line-mode \
        | xargs -0 bzcat \
        | tee >( some | other | pipeline ) \
        | grep -e "myString" \
        | wc -l)
echo "${result} occurrences found"


来源:https://stackoverflow.com/questions/52482820/use-pipeline-viewer-to-show-progress-for-uncompression-of-a-list-of-processed-fi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!