我想通过这个命令打印更新行
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。