• awk


    所有操作对development.yaml

    [root@kube-node3 ~]# cat development.yaml
    apiVersion: v1
    kind: Namespace
    metadata:
    name: development
    labels:
    name: development

    打印硬盘设备名称,默认以空格分割
    df -h | awk '{print $1}'


    以冒号作为分割符
    awk -F '[:]' '{print $1}' development.yaml   或者   cat /etc/passwd | awk -F: '{print $NF}'


    以空格作为分隔符
    awk -F ' '  '{print $1}' development.yaml   或者   awk   '{print $1}' development.yaml


    以制表符作为分隔符
    awk -F '[ ]' '{print $1}' development.yaml


    以分号作为分隔符
    awk -F '[;]' '{print $1}' development.yaml


    以冒号为分割,打印第一列,然后追加到/tmp/log
    awk -F: '{print $1>> "/tmp/awk.log"}' development.yaml


    打印第三行到第五行,NR表示行
    awk 'NR==3,NR==5 {print}' development.yaml

    打印文件所有域
    awk 'NR==3,NR==5 {print $0}' development.yaml


    打印第三行到第五行的第一列和最后一列
    awk -F: 'NR==3,NR==5 {print $1,$NF}' /etc/passwd

    打印最后一列

    cat /etc/passwd | awk -F ':'  '{print $NF}'   或者  cat /etc/passwd | awk -F: '{print $NF}'


    打印字符串长度大于10的行号
    awk 'length($0)>10 {print NR}' development.yaml


    引用shell变量,使用-v或者双引号+单引号
    awk -v STR=hello '{print STR,$NF}' development.yaml

    以冒号为分隔符,打印第一列同时打印前5行
    awk -F: 'NR>=1 && NR<=5 {print $1}' development.yaml
    cat /etc/passwd | head -5 | awk -F: '{print $1}' development.yaml


    打印第一列和所有行号
    awk -F: '{print NR,$1}' development.yaml


    NR除以2等于0则跳过该行继续执行下一行,打印出来
    awk -F: 'NR%2==0{next} {print NR,$1}' development.yaml


    awk添加自定义字符
    ifconfig ens33 | grep broad | awk '{print "ip_"$2}'


    awk格式化输出password内容,printf打印字符串,% 格式化输出分隔符,s表示字符串类型,-12 表示12个字符,-6表示6个字符
    awk -F: '{printf "% - 12s % - 6s % -8s ", $1,$2,$NF}' /etc/passwd


    awk OFS输出格式化
    netstat -an | awk '$6 ~ /LISTENING/$$NR>=1&&NR<=10 {print $NR, $4, $5, $6}' 没做成


    awk和if组合使用
    echo 3 2 1 | awk '{ if(($1>$2 && $1>$3)) {print $2} else {print $3}}'

    awk与数组结合统计passwod文件用户数
    awk -F":" '{print $7}' /etc/passwd | uniq -c


    awk分析nginx的日志状态码 404 503 等次数 统计次数大于20的
    awk '{if ($9~/502|499|500|503|404/) print $1,$9}' access.log|sort|uniq –c|sort –nr | awk '{if($1>20) print $2}'


    awk统计服务器连接状态数
    netstat -an | awk '/tcp/{s[$NF]++}END{for(i in s) print s[i] i}'
    netstat -an | awk '/tcp/{print $NF}' | sort | uniq


    grep -c "404" access.log 统计nginx日志中404的行数

    grep -i "404" access.log 不区分大小写 查找404所在的行

    grep -n "404" access.log 打印404的行以及行号

    grep -v "404" access.log 不打印404所在的行

    grep "api[Vv]" development.yaml 以字符api开头,接V或v 的行

    grep "^[^api]" development.yaml 显示输出不是api的行

    grep "[Aa]p" development.yaml 匹配 A或a开头,后接p的行


    awk提取信息并保持到文件
    cat /etc/passwd | awk -F: '{ print $1 }' | tail -10 > output.txt && cat output.txt


    为文件的每一行后面添加特定字符串
    awk '{print $0" &&"}'


    打印第一列到最后一列,默认以空格分割
    awk '{for (i=1;i<=NF;i++)printf("%s ", $i);print ""}'

    打印第三列到最后一列,默认以空格分割
    awk '{for (i=3;i<=NF;i++)printf("%s ", $i);print ""}'

    打印第一列至倒数第二列,默认以空格分割
    awk '{for (i=1;i<=NF-1;i++)printf("%s ", $i);print ""}'


    提取yum的软件包个数
    yum repolist | sed -n '/repolist/p' | awk -F ':' '{print $2}'

  • 相关阅读:
    点聚weboffice插件自定义菜单
    Delphi程序带参数运行
    64位系统下注册32位dll文件
    64位进程调用32位dll的解决方法
    memcached启动脚本以及telnet测试
    LSM树由来、设计思想以及应用到HBase的索引
    B树(B-Tree)的由来、数据结构、基本操作以及数据库索引的应用
    java读取utf8配置文件乱码
    设置某个ip对mysql服务器有权限,以及mysql定时备份
    《HBase实战》
  • 原文地址:https://www.cnblogs.com/effortsing/p/9981860.html
Copyright © 2020-2023  润新知