在使用df -h查看磁盘空间使用情况时,发觉有时候当分区名过长时,输出会被分割成2行,如下:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda5 4.7G 3.3G 1.5G 69% /
/dev/hda1 96M 46M 51M 48% /boot
shm 248M 0 248M 0% /dev/shm
/dev/hda3 9.4G 6.3G 3.1G 68% /mnt/blfs
/dev/hda6 28G 5.7G 23G 21% /mnt/stdclub
/dev/mapper/vg0-mail 1000M 36M 965M 4% /var/mail
/dev/mapper/vg0-ftp 3.0G 35M 3.0G 2% /home
/dev/mapper/vg0-database
10.0G 3.8G 6.2G 38% /database
这样用awk等工具提取相关信息时,就会出现一点点问题。
不过可以使用sed来把被分割的行“还原”,下面的脚本将提取分区为lvm的信息:
# df -h|sed '/%/!N;s/\n//;/^\/dev\/mapper\//!d'
脚本解释:
1. /%/!N;s/\n// 其中N的作用是把当前行后一行的内容加在当前行后边
这部分将被分割的行(不含%的行)重组
2. /^\/dev\/mapper\//!d 将不含/dev/mapper/的行删除
输出结果为:
/dev/mapper/vg0-mail 1000M 36M 965M 4% /var/mail
/dev/mapper/vg0-ftp 3.0G 35M 3.0G 2% /home
/dev/mapper/vg0-database 10.0G 3.8G 6.2G 38% /database
阅读(1385) | 评论(0) | 转发(0) |