抓住第3列到最后一列

时间:2015-10-22 23:01:45

标签: linux shell awk gawk

我正试图抓住" df -m"中的第3列到最后一列。命令,但它似乎不起作用。那么它的工作在一个,而不是在其他工作。部分原因是我们使用LVM的一个挂载点和其他使用标准linux挂载的挂载......

但我需要始终访问第3列到最后一列(可用空间),这样我才能确保我的脚本有效...如何实现这一目标或者我做错了什么?

hostname:oraSID 292> df -m /oracle/SID/logs/
Filesystem     1M-blocks  Used Available Use% Mounted on
/dev/xvdf           5040  1139      3646  24% /oracle/SID/logs
hostname:oraSID 293>
hostname:oraSID 293> df -m /oracle/SID/sapdata6/
Filesystem           1M-blocks   Used Available Use% Mounted on
/dev/mapper/grp1-log_vsap1
                        856743 800202     13022  99% /oracle/SID/sapdata6
hostname:oraSID 294>
hostname:oraSID 294>
hostname:oraSID 295> df -m /oracle/SID/logs/ | awk '{ field = $(NF-2) }; END{ print field }'
3646
hostname:oraSID 296>
hostname:oraSID 296> df -m /oracle/SID/sapdata6/ | awk '{ field = $(NF-2) }; END{ print field }'
awk: (FILENAME=- FNR=2) fatal: attempt to access field -1
hostname:oraSID 297>
hostname:oraSID 297>

3 个答案:

答案 0 :(得分:0)

使用--output选项可能更容易:

df -m --output=avail

答案 1 :(得分:0)

这适用于我的Ubuntu系统:

df -m | awk -F "\t" 'NR == 1 {print "Available"} NR > 1 {print $(NF-2)}'

"安装在"抛弃它,所以我明确打印出来。

答案 2 :(得分:-1)

我找到答案,为了保持我的格式相同我使用下面的选项..所以似乎df -P保持格式相同...

-P, - portability使用POSIX输出格式