终端中输出的算术运算

终端中输出的算术运算

我想通过这个命令打印更新行

dnf check-update --refresh --q --downloadonly | wc -l

但是在输出过程中会出现一个空行,这意味着真的从上述命令的输出来看,更新数量将小于 1。

如何从上面的命令中减去 1一行命令

答案1

只需更改wc -l即可grep -c .跳过空白行:

dnf check-update --refresh --q --downloadonly | grep -c .

或者

dnf check-update --refresh --q --downloadonly | sed '/^$/d' | wc -l

或者如果你坚持做算术:

printf '%s\n' $(( $(dnf check-update --refresh --q --downloadonly | wc -l) -1))

$((...))是算术替换。完成算术运算后,整个内容将被表达式的值替换。看http://mywiki.wooledge.org/ArithmeticExpression

相关内容