一尘不染

获取shell命令输出的第一行

linux

尝试读取的版本号时vim,我得到了很多其他行,需要忽略。我尝试阅读的手册,head并尝试了以下命令:

vim --version | head -n 1

我想知道这是否正确吗?


阅读 6093

收藏
2020-06-07

共1个答案

一尘不染

是的,这是从命令获取第一行输出的一种方法。

如果命令以相同的方式输出任何您想要捕获的标准错误,则需要将命令的标准错误重定向到标准输出流:

utility 2>&1 | head -n 1

捕获第一行的方法还有很多,包括sed 1q(在第一行之后退出),sed -n 1p(仅打印第一行,但读取所有内容),awk 'FNR == 1'(仅打印第一行,但再次读取所有内容)等。

2020-06-07