• linux 查看系统空间使用率 df -h按指定的格式输出( 去除首行标题行,每行文件系统信息用指定分隔符分隔,并去除指定字符 )


    由于需要对系统空间使用率进行网页页面的可视化输出,需要将“df -h”获取到的系统空间使用率的信息按照可视化界面的要求的格式进行修改,才可以正常解析数据,正常展示在界面上。

    可视化界面要求shell输出内容格式为:

    文件系统|大小|已使用|可用|使用率|挂载盘|日期

    (其中使用率字段要求数据类型为int)

     

    首先使用linux系统命令行输入df -h 命令,执行结果:

     

    根据df -h的输出可以看出,除最后一项“日期”外,前几项均与指定格式内容一致,那么接下来还需要处理以下问题:

    1.将首行的标题行去除,不要其显示输出

    2.去掉“使用率”字段中带有的“%”符号

    3.每行文件系统的具体信息每一项内容需要用"|"分隔符分隔输出

    4.每行最后再添加输出当天日期

     

     

    操作过程(均使用管道命令):

    1.去除首行

    sed '1d'
    

      

     

     2.去除“%”号

    sed 's/%//g'
    

      

     

     3.指定“|”分隔符输出

    awk '{printf $1"|"$2"|"$3"|"$4"|"$5"|"$6"
    "}'
    

     $1  $2  指的是awk前要输出的内容分割后的每一列的字段内容。其中默认分隔符为空格,因为此处就是空格,所以省略了。

     

     

    当分隔符不是空格时,如这段内容( 此时分隔符为冒号:)

    使用FS命令:

    FS内置变量的作用是在awk命令中指定分隔符,一般和BEGIN命令一起使用。

      此时先按照“:”作为分隔符分隔每行的内容,然后再以“,”作为新的分隔符输出:

    cat /etc/passwd |grep "bash"|awk 'BEGIN{FS=":"} {print $1 "," $2}'
    

      

     

     注意此处的FS前加了BEGIN,如果不加BEGIN的话,由于awk命令会首先读取第一行命令,导致输出的时候会把第一行全部输出,而从第二行开始才会使用“:”分隔符来分割列输出。

     

     

    4. 每行添加当天日期

    #获取当天日期
    localdates=`date +%Y%m%d`
    

      

     

     

    此处需要用到awk命令获取外部变量:

    echo | awk '{print localdates}' localdates=$localdates
    

      

     

     

     

    完整命令:

    df -h |sed '1d'|sed 's/%//g'|awk '{printf $1"|"$2"|"$3"|"$4"|"$5"|"$6"|"localdates"
    "}' localdates=$localdates
    

      

     

     

     

     

    参考:https://www.cnblogs.com/anchun7080/p/10316904.html

    https://blog.csdn.net/szz0429/article/details/83981734

  • 相关阅读:
    连续两天写论文
    既然杂事比较多,索性统统处理一下
    Power symbol
    不要被一些无谓的事情烦扰
    今天提前回去吧,整理一下,为下周做好准备。
    天气暖和了,我却感冒了
    每天回想一下,今天到底完成了什么
    opensue12.1硬盘升级安装12.2问题解决
    IPmsg(飞鸽传书)协议翻译
    关于交叉验证和过拟合
  • 原文地址:https://www.cnblogs.com/wang-jx/p/14312336.html
Copyright © 2020-2023  润新知