AWK打印最后一行
问题描述:
我试图用AWK发布此命令的最后一行(总磁盘空间)的第二行第二列:AWK打印最后一行
df --total
我使用的命令是:
df --total | awk 'FNR == NF {print $2}'
但它没有得到正确的答案。 还有另一种方法可以做到吗?
答
您可以使用tail
第一,然后使用awk
:
df --total | tail -1 | awk '{print $2}'
答
一种方式来做到这一点是有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}'
+1
您不需要将'$ 2'存储为一个变量,只需将其打印在结尾部分即可。 – Jotne
答
AWK没有的“这是最后一行”的概念。 sed确实如此:
df --total | sed -n '$s/[^[:space:]]\+[[:space:]]\+\([[:digit:]]\+\).*/\1/p'
您还可以使用'--output'来表示您想要打印的确切字段。例如,'df --output = size |尾巴-1'。有关不必要的额外过程,请参阅[如何在linux df命令中选择特定列](http://stackoverflow.com/a/28809214/1983854) – fedorqui