Chinaunix首页 | 论坛 | 博客
  • 博客访问: 592409
  • 博文数量: 40
  • 博客积分: 7274
  • 博客等级: 少将
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-20 15:00
个人简介

Expired

文章分类
文章存档

2011年(1)

2008年(3)

2007年(17)

2006年(10)

2005年(9)

分类: LINUX

2006-01-16 17:16:31

在使用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


阅读(1354) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~