我试图只获取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命令打印第一行的第一个字段。