web-dev-qa-db-ja.com

コマンドをpvにパイプしますが、元のコマンドの出力はすべて非表示にします

pvを使用しようとしていますが、pvの出力を表示できるようにしながら、パイプで出力したコマンドを非表示にします。 command &> /dev/null | pvを使用しても機能しません(pvはデータを受け取りません)。 commandは、標準出力と標準エラーの両方で出力を生成しますが、どちらも見たくありません。

Grepパイプ(command &> /dev/null | pv | grep <=>)を使用してみましたが、それは時々端末に出力されます。

5
Lee Ikard

man pvは言う

これを使用するには、適切なオプションを使用して、2つのプロセス間のパイプラインに挿入します。その標準入力はその標準出力に渡され、進行状況は標準エラーで表示されます。

表示される出力はpvからのものです。プログレスバーはstderrにあり、パイプしたコンテンツはstdoutにあります。出力をリダイレクトできます。

cmd | pv > /dev/null

進行状況バーの出力が表示されます。

コマンドがstderrでも独自のテキストを生成する場合は、出力をpvに渡す前に、 明示的に/dev/null にリダイレクトできます。 :

cmd 2>/dev/null | pv > /dev/null
7
Michael Homer