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

grab specific part of the output of the --version of qrencode

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

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

我很困惑,因为这种技术过去适用于大多数软件包:

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

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

您可以将 stderr 重定向到 stdout:

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

输出:3.4.4

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

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

有关详细信息,请参阅 cut or awk command to print first field of first row

能否请您尝试以下。

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