xargsを使用して、次のような一連の入力パラメーターに対してコマンドを実行しています。
cat <someinput> | xargs -n 1 -P 5 <somecmd>
入力ファイルは本当に長く、実行に長い時間がかかります。したがって、コマンドプロンプトが表示されるのを待っています。完了した入力引数の数の進行状況バーを表示する方法はありますか?
「バー」を使用してみましたが、常に「無限」のスループットが得られました。xargsはコマンドを実行する前に入力全体を読み取るようです。

xargsを使用して、次のような一連の入力パラメーターに対してコマンドを実行しています。
cat <someinput> | xargs -n 1 -P 5 <somecmd>
入力ファイルは本当に長く、実行に長い時間がかかります。したがって、コマンドプロンプトが表示されるのを待っています。完了した入力引数の数の進行状況バーを表示する方法はありますか?
「バー」を使用してみましたが、常に「無限」のスループットが得られました。xargsはコマンドを実行する前に入力全体を読み取るようです。

回答:
GNU Parallelを使用している場合は、次のコマンドを実行できます。
cat <someinput> | parallel --bar -P 5 <somecmd>
GNU Parallelは一般的なパラレライザーであり、同じマシン上で、またはsshにアクセスできる複数のマシン上で、ジョブを並行して簡単に実行できます。
4つのCPUで実行する32の異なるジョブがある場合、並列化する簡単な方法は、各CPUで8つのジョブを実行することです。

代わりに、GNU Parallelは新しいプロセスが終了するとスポーンします-CPUをアクティブに保ち、時間を節約します。

設置
個人用インストールでは、rootアクセスは必要ありません。これを行うと、10秒で完了します。
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
その他のインストールオプションについては、http://git.savannah.gnu.org/cgit/parallel.git/tree/READMEを参照してください。
もっと詳しく知る
他の例を参照してください:http : //www.gnu.org/software/parallel/man.html
イントロビデオを見る:https : //www.youtube.com/playlist?list=PL284C9FF2488BC6D1
チュートリアルをご覧ください:http : //www.gnu.org/software/parallel/parallel_tutorial.html
サポートを受けるには、メーリングリストにサインアップしてください:https : //lists.gnu.org/mailman/listinfo/parallel
あなたはpvを使うことができます:
cat <someinput> | pv -p -s sizeof_someimput | xargs -n 1 -P 5 <somecmd>
これにより、someimputの読み取り値がどこにあるかがわかるので、someimputの処理がどこにあるかをほぼ知ることができます。
FIND=( find "$DIR" -type f ) && ${FIND[@]} -print0 | pv -0lps $(${FIND[@]} | wc -l) | xargs -0 -I {} -P 5 <somecmd>