【问题标题】:How to extract specific information from textfile table UNIX/Shell Scripting如何从文本文件表 UNIX/Shell 脚本中提取特定信息
【发布时间】:2012-09-17 09:22:45
【问题描述】:

我对 UNIX/Shell 脚本非常陌生,我正在尝试从众多服务器中提取磁盘使用情况。所以我想做的是制作一个运行的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 行更简单的方法 -> 忽略最后一行 -> 在每一行上搜索 %。

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

【问题讨论】:

    标签: shell unix aix


    【解决方案1】:
    df -g | awk '/\/usr\/app/ {print $4}'
    

    这会为您提供可用的百分比,但它不会告诉您哪个与哪个相配。你总是可以在输出中包含挂载点,但是你仍然需要做一些解析才能得到数字,如下所示:

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

    【讨论】:

    • 我得到'语法错误,源行是 1' 这个错误是什么意思?
    猜你喜欢
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 2022-11-14
    • 2023-03-25
    • 2019-10-15
    • 2020-06-18
    • 2023-03-28
    相关资源
    最近更新 更多