抓取qrencode的--version输出的特定部分



我试图只获取qrencode的版本号,但它不起作用。知道为什么吗?

$ qrencode --version | head -1 | awk '{print $3}'
qrencode version 3.4.4
Copyright (C) 2006-2012 Kentaro Fukuchi

我很困惑,因为这类技术用于大多数包都很好:

$ gzip --version | head -1 | awk '{print $2}'
1.6

编辑:感谢您的帮助。这是因为对于qrencode--version的输出被打印到stderr而不是stdout。根据so回答的评论,这在一定程度上是常见的。对我来说有点奇怪,但很公平。

请您尝试以下操作。

qrencode --version 2>&1 | awk 'FNR==1{print $3;exit}'

您可以将stderr重定向到stdout:

qrencode --version 2>&1 | head -1 |  awk '{print $3}'
^^^^

输出:3.4.4

如果你想摆脱head -1并获得与awk相同的结果,请使用

qrencode --version 2>&1 | awk 'NR==1{print $3}'

有关详细信息,请参阅cut或awk命令打印第一行的第一个字段。

相关内容

  • 没有找到相关文章