• awk 命令


    打印文件中,第二列是20180101的行
    cat test.txt |awk -F ',' '{if($2=="20180101") print}'
    
    打印文件中,第二列以2018开始的行
    cat test.txt |awk -F ',' '{if($2~/^2018/) print}'
    
    打印文件中,第二列不是以2018开始的行
    cat test.txt |awk -F ',' '{if($2!~/^2018/) print}'
    
    打印文件中,第二列以2018开始并且以15结尾的行
    cat test.txt |awk -F ',' '{if($2~/^2018..15/) print}'
    
    
    awk -F":" '{if($1~/root/) print $1}' /etc/passwd 打印包含root的行
    awk -F":" '/root/{print $1}' /etc/passwd   匹配root,并打印第一列
    awk -F":" '$4==100 {print $0}' /etc/passwd  打印第四列等于100的行
    awk -F":" '$1 !~ /root/ {print $0}' /etc/passwd   打印不包含root的行
    awk -F":" '$1 != “root” {print $0}' /etc/passwd   打印第一列不等于root的行
    awk -F":" '$3 < $4 {print $0}' /etc/passwd  如果第三列小于第四列,则打印此行
    awk -F":" '$3 + $4 == 155 {print $0}' /etc/passwd   匹配两列之和为155
    awk -F":" ' {print $3,$4,"Total is:"$3 + $4 }' /etc/passwd  打印两列相加结果
    awk '/[Rr]oot/' /etc/passwd  区配某字段
    awk '/^...s/' /etc/passwd     抽取名字,其记录第一域的第四个字符是a,使用句点.。表达式/ ^ . . . a /意为行首前三个字符任意,第四个是a,尖角符号代表行首
    awk '/(root|net|ucp)/' /etc/passwd   匹配包含root或net或ucp的任意行
    awk '/^[0-9]/' group.txt     匹配以数字开头的行
    awk 'NR>0 && NR<10{print NR,$0}' passwd 打印0-10之间的行
    awk -F: 'NF>7 {print NF,$0}' passwd  打印大于7列的行
    awk -F: '{if (NF==8 && NR==31)print NR,$1}' passwd  如果第31行超过8列,就打印这一行的第1列
    awk 'gsub(/root/,"admin") {print $0}' passwd 将包含/root的字段替换为admin
    awk -F: 'length($1)==4 {print $0,length($1)}' passwd   如果第一列长度为4则打印此行
    awk '$3==day {print $0}' day=`date +%d` /tmp/te.log   将命令传给awk
    
    

    https://www.cyberciti.biz/faq/bash-scripting-using-awk/

  • 相关阅读:
    理解Java虚拟机——Java内存模型管理
    Java 使用fastjson 将 json字符串写到文件中去
    java 如何调用 linux or mac 命令行
    MacOS 编译 openjdk8 并导入 Clion 调试
    linux ls 命令超级详解
    小 Q 与树 (点分治)
    mysql 索引策略
    java中serialVersionUID作用
    通过源码分析Spring Security用户认证流程
    使用PowerMockRunner和Mockito编写单元测试用例详解
  • 原文地址:https://www.cnblogs.com/sandy-t/p/13851954.html
Copyright © 2020-2023  润新知