Grep在Linux中的一个列上

我试图parsingdf -h命令的输出。 例如:

 Filesystem Size Used Avail Use% Mounted on /dev/mapper/VGExaDb-LVDbSys1 30G 17G 12G 58% / /dev/sda1 496M 38M 433M 8% /boot /dev/mapper/VGExaDb-LVDbOra1 99G 18G 76G 19% /u01 tmpfs 252G 90M 252G 1% /dev/shm dbfs-dbfs_user@:/ 4.0T 283G 3.7T 8% /dbfs_direct 

我只想在“Avail”列下的值。 但awk命令不能正常工作,因为每行中的单词数量不一样。 当我运行df -h | awk '{print $4}' df -h | awk '{print $4}'命令,它给出这样的输出:

 Avail 58% 433M 19% 252G 3.7T 

尝试这个:

 df -Ph | awk '{ print $4 }' 

每个man页:

  -P, --portability use the POSIX output format 

这不会导致不必要的换行。 h会以可读的格式给你。

我个人认为使用df --output选项是正确的选择:

 df -h --output='avail' 

又快又脏? 尝试这个:

 df -h | grep / | awk '{print $4}' 

更新:使用仅设置为40列的控制台几何时,即使使用换行符也能正常工作: 在这里输入图像描述