終了しない「ヘッド」の代わりに?


13

最初のn行を印刷するユーティリティが必要ですが、実行を続け、残りの行を吸い上げますが、印刷はしません。実行を継続する必要があるプロセスの出力で端末を圧倒しないために使用します(結果をファイルに書き込みます)。

できると思いましたがprocess | {head -n 100; cat > /dev/null}、もっとエレガントなものはありますか?


2
処理はヘッドの後も継続され、端末に出力されなくなります。
-123

7
実際に解決しようとしている問題は何ですか?
桂佐藤

2
それらを吸うとはどういう意味ですか?単に先頭にパイプすると、残りの出力は破棄されます。
ジュリーペレティエ

7
@JuliePelletierとstdoutは閉じられ、適切に作成されたプログラム(とにかくstdoutにのみ書き込みを行うプログラム)はそれに気づき、早期に終了します。
cas

@castrap '' PIPE
桂佐藤

回答:


22

最初の100行(またはその他の行)processのみを印刷しながら、出力を「吸い上げ」続けるには:

process | awk 'NR<=100'

または:

process | sed -n '1,100p'

13
私は通常使用するだけ... | tee /dev/null | head ...
デビッドシュワルツ

2
@DavidSchwartzうん-それは私がやることだ。また、ファイル内のすべての出力をダンプして、後で確認することもできるため、はるかに望ましい方法です。いつそれが必要になるかわからない-最悪の場合、ファイルをたまに上書きして、せいぜい何が起こったのかを分析するためのログとして使用できる。
VLAZ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.