zoukankan      html  css  js  c++  java
  • Linux命令学习1(awk、grep、sed)

    1、AWK内部代码编写(为了更好的理解)

    BEGIN{size=0}
    {
        if($5>4096){
        size=size+$5;
        printf("%-10i%s
    ",$5,$9)}
    }
    END{print "size is",size/1024/1024}

    2、去掉回车,加上其他部分

    ls -l|awk 'BEGIN{size=0}{if($5>4096){size=size+$5;printf("%-10i%s
    ",$5,$9)}}END{print "size is",size/1024/1024}'

    目的:要查看当前目录中大于4kB的文件的,并将其大小相加求出总大小。

    3、查看当前目录大于4Kb的文件

    ls -l|awk '{if($5>4096)printf("%-10i%s
    ",$5,$9)}'

    4、脚本中AWK使用

    目的:shell脚本中除法只能为整除,用AWK可以是小数

    #!/bin/bash
    resault=`ntpdate -q 172.17.0.21 172.17.0.22 |grep stratum |awk '{print $6}'|sed "s/,//g"|awk '{offset[NR]=$1}END{print offset[2]*1000000-offset[1]*1000000}'`
    if [ $resault -lt 0 ]; then
            let resault=0-$resault
    fi
    if [ $resault -gt 100 ]; then
            #let resault=$resault/1000;
            echo "`date "+%Y-%m-%d %H:%M:%S"` NTP server 172.17.0.21 and 172.17.0.22 offset `awk 'BEGIN{printf"%.4f
    ",'$resault'/1000}'` ms"
    fi

    5、AWK常用参数 -F(表示已什么为分隔符)

    grep 'nologin$' /etc/passwd|awk -F ':' '{print $1}'

    目的:查看nologin用户

    grep查看以nologin结尾的行,AWK查询以":"分隔的第一列的信息

    6、grep常用参数

      -c:打印符合要求的行数(及统计符合要求多少行)
         -i:忽略大小写
         -n:打印符合要求的行,并显示行号
         -v:反着打b印(及不包含符合要求的内容)

    grep -c 'nologin$' /etc/passwd

    目的:查询nologin用户的个数

    grep -v 'nologin$' /etc/passwd

    目的:查询不是nologin用户

    7、sed

    ip addr|sed -rn 's#^.*inet (.*)/24.*$#1#gp'

    目的:过滤IP地址

    -r:正则表达

    -n:取消sed默认的打印,和p连用,打印匹配行

     #(..)#1:匹配子串,保存匹配的字符

    sed -i "s/Hostname=Zabbix server/Hostname=`ip addr|sed -nr 's#^.*inet (.*)/24.*$#1#gp'|grep -v 192.168.122.1`/" /etc/zabbix/zabbix_agentd.conf

    目的:替换Zabbix server为本机IP

  • 相关阅读:
    免费linux远程主机nitrousIO
    利用PyWapFetion发免费天气短信
    接口中的 sort排序 + md5加密
    即点即改心得
    js判断客户端访问是安卓还是ios
    php将时间戳转换成几小时前的格式封装
    前端请求接口出现的跨域问题
    使用redis技术实现注册登录列表以及关注功能
    windows下的redis安装以及扩展安装
    Yii2 学习心得
  • 原文地址:https://www.cnblogs.com/xue0123/p/6413419.html
Copyright © 2011-2022 走看看