Chinaunix

标题: shell打印相对行的问题 [打印本页]

作者: su_root    时间: 2015-07-31 11:39
标题: shell打印相对行的问题
#!/bin/bash
DISKNUM=`df -h |sed '1d'`
I=0
for DISKN in `df -h | sed '1d'| awk '{print $5}'| cut -d '%' -f1`
do
        if [[ $DISKN > 10 ]]
        then
                (这里希望系能显示空间不足的文件系统与剩余)
                echo "filesystem good"
        fi
        ((I++))
done

我的想法是通过$I记录正在读取的行数把空间不足的打印出来..但想不到怎么打印$I 行,求大牛指点
作者: haooooaaa    时间: 2015-07-31 11:44
本帖最后由 haooooaaa 于 2015-07-31 11:54 编辑

你上面的的命令的结果, 在我这
  1. df -h | sed '1d'| awk '{print $5}'| cut -d '%' -f1
  2. /
  3. 0
  4. 7
复制代码
或者直接这样?
  1. df -hl | awk '+$(NF-1)>50{print $NF}'
复制代码
空间大于 50,就打印
作者: su_root    时间: 2015-07-31 11:55
本帖最后由 su_root 于 2015-07-31 11:56 编辑

回复 2# haooooaaa


谢谢回复,发个你的df -h 的执行结果我看看么?
我写大于10不过是测试而已。。。按照思路大于80显示如下:
eg:
    /data 空间不足剩余:20
另外,能给我讲讲awk '+$(NF-1)>50{print $NF}么?刚学AWK..谢谢
作者: haooooaaa    时间: 2015-07-31 11:56
本帖最后由 haooooaaa 于 2015-07-31 11:57 编辑

回复 3# su_root
  1. [root@cAdmin ~]# df -h
  2. Filesystem            Size  Used Avail Use% Mounted on
  3. /dev/mapper/vg_centostest-lv_root
  4.                        14G  1.8G   12G  14% /
  5. tmpfs                 499M     0  499M   0% /dev/shm
  6. /dev/sda1             477M   28M  424M   7% /boot
复制代码

作者: MMMIX    时间: 2015-07-31 12:23
本帖最后由 MMMIX 于 2015-07-31 12:25 编辑

回复 1# su_root


    何必这么麻烦,直接用 awk 就足够了:

  1. df -h | awk 'NR > 1 { if ($5 + 0 > 20) { print $NF " is less than " 80 } }'
复制代码

作者: Shell_HAT    时间: 2015-07-31 12:31
回复 5# MMMIX


    没这么简单,请注意观察4楼给出的例子里面有文件系统和使用率不在同一行的情况。
作者: MMMIX    时间: 2015-07-31 12:43
回复 6# Shell_HAT


    我这 df  (GNU coreutils 8.21) 不会断行。
作者: haooooaaa    时间: 2015-07-31 12:47
回复 3# su_root


    awk '+$(NF-1)>50{print $NF}


$(NF-1) 是倒数第二列.

+$(NF-1) 可以说是  0+$(NF-1)  意思是把 倒数第二列转为数值, 然后再判断....
作者: Shell_HAT    时间: 2015-07-31 13:12
回复 7# MMMIX


手上没有这个版本的df无法测试。如果你那里有文件系统名字特别长,或者挂载了NFS的文件系统,可以都试试。
Linux系统可以用 df -P 避免换行
UNIX系统不支持 df -P 往往需要脚本里面自己处理
作者: MMMIX    时间: 2015-07-31 13:49
回复 9# Shell_HAT


    这个就不太清楚了,我这文件系统名字最长就是30个字符。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2