我的 Linux 机器上的“df -h”命令有一些名称较长的设备,因此“df -h”输出中有换行符(或制表符?),这使得在脚本中解析输出变得困难。
有谁知道我怎样才能抑制换行符,以便得到以下后者的输出:
[root@me ~]# df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
3.9G 404M 3.3G 11% /
/dev/mapper/VolGroup00-LogVol05
3.9G 442M 3.3G 12% /home
/dev/mapper/VolGroup00-LogVol04
3.9G 261M 3.5G 7% /var
/dev/mapper/VolGroup00-LogVol03
3.9G 137M 3.6G 4% /tmp
/dev/mapper/VolGroup00-LogVol02
7.8G 3.6G 3.8G 49% /usr
所需的格式是:
[root@me ~]# df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 3.9G 404M 3.3G 11% /
/dev/mapper/VolGroup00-LogVol05 3.9G 442M 3.3G 12% /home
/dev/mapper/VolGroup00-LogVol04 3.9G 261M 3.5G 7% /var
/dev/mapper/VolGroup00-LogVol03 3.9G 137M 3.6G 4% /tmp
/dev/mapper/VolGroup00-LogVol02 7.8G 3.6G 3.8G 49% /usr
答案1
尝试:df -Pkh
P 代表“可移植”,将强制它遵循 POSIX 标准输出。
我有预感会修复 df 尝试执行的任何巧妙格式化。
将来,当您尝试解决类似问题时,请尝试man df
看看是否可以找到任何看起来可能有效的东西……因为这就是我所做的=)
答案2
df -Ph | awk '{printf "%-35s%-10s%-10s%-10s%-5s%s\n",$1,$2,$3,$4,$5,$6}'