如何从文本文件表UNIX / Shell Scripting中提取特定信息

时间:2012-09-25 19:50:35

标签: shell unix aix

我是UNIX / Shell Scripting的新手我正试图从众多服务器中提取磁盘使用情况。所以我要做的是制作一个运行的shell脚本 df -g> diskusage.txt获取下表并从下面提取**数据

   Filesystem        Size      Used    Avail    Use%        Mounted on
  /dev/ibm_lv       84.00     56.81     33%     637452     5% /usr/IBM
  /dev/apps_lv      10.00      9.95    **1%**     5        1% /usr/apps
  /dev/upi_lv      110.00     85.85   **22%**   90654      1% /usr/app/usr
  user08:/backup   2000.00   1611.22    20%    177387      1% /backup

根据服务器的不同,有更多的文件系统,但我只想要/ usr / apps / usr,/ usr / apps磁盘使用情况,无论文件系统的数量是多少。 (/ usr / apps / usr,/ usr / apps总是位于最后三行)

我很确定有比阅读最后3行简单的方法 - >无视最后一行 - >在每一行上搜索%。

如果有更好的方法来提取这些数据,请告诉我。

1 个答案:

答案 0 :(得分:0)

df -g | awk '/\/usr\/app/ {print $4}'

这可以获得可用的百分比,但它并没有告诉你哪一个与哪个相关。您始终可以在输出中包含mountpoint,但是您仍然需要进行一些解析以获取数字,如下所示:

    while read avail mount; do 
       echo "$mount has $avail available"
    done < <(df -g | awk '/\/usr\/app/ {print $4, $NF}')