我正在尝试使用AWK发布此命令最后一行的第二行(总磁盘空间):
df --total
我正在使用的命令是:
df --total | awk 'FNR == NF {print $2}'
但它没有做对。 还有其他办法吗?
答案 0 :(得分:13)
你正在使用awk变量NF,它是字段数。您可能意味着NR,行数,但更容易使用END:
df --total | awk 'END {print $2}'
答案 1 :(得分:7)
您可以先使用tail
,然后使用awk
:
df --total | tail -1 | awk '{print $2}'
答案 2 :(得分:7)
一种方法是使用tail/awk
组合,前者只获取最后一行,后者打印第二列:
df --total | tail -1l | awk '{print $2}'
纯粹的awk
解决方案是简单地存储每行的第二列并在结尾处打印出来:
df --total | awk '{store = $2} END {print store}'
或者,由于最后一列保留在最后一行的END
块中,因此只需:
df --total | awk 'END {print $2}'
答案 3 :(得分:4)
awk没有“这是最后一行”的概念。 sed确实:
df --total | sed -n '$s/[^[:space:]]\+[[:space:]]\+\([[:digit:]]\+\).*/\1/p'