替代不退出的“头”?


13

我需要一个实用程序,该实用程序将打印前n行,但随后继续运行,吸收其余行,但不打印它们。我用它来使终端不被需要继续运行的进程的输出所淹没(它将结果写入文件)。

我想我可以做process | {head -n 100; cat > /dev/null},但是还有什么更优雅的选择吗?


2
重新启动后,该过程将继续,只是不再打印到终端了。
2016年

7
实际上要解决什么问题?
佐藤桂

2
你吸他们是什么意思?如果只管头,则剩余的输出将被忽略。
Julie Pelletier

7
@JuliePelletier和stdout将关闭,编写良好的程序(无论如何只写到stdout的程序)将注意到该情况并尽早终止。
cas

@castrap '' PIPE
佐藤桂

Answers:


22

process在仅打印前100行(或其他任何行)的同时继续“吸收”来自的输出,请执行以下操作:

process | awk 'NR<=100'

要么:

process | sed -n '1,100p'

13
我通常只用... | tee /dev/null | head ...
David Schwartz

2
@DavidSchwartz是的-这就是我要做的。由于您还可以将所有输出转储到文件中并在以后的时间点进行检查,因此更可取。您永远都不知道何时需要它-更糟的是,您有一个文件,偶尔会覆盖它,至多,您可以将它用作分析事件/原因的日志。
VLAZ '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.