• linux系统 awk 命令依据列字段进行数据匹配


    1、创建测试数据

    [root@linuxprobe test]# cat a.txt  ## 随机创建测试数据
    fr      dfg     rte
    er      hdf     fgh
    dg      fgd     rtw
    er      ewr     scf
    yt      ret     tgr

    2、简单用法

    [root@linuxprobe test]# awk '$1 ~ /fr/ {print $0}' a.txt  ## 第一列匹配fr,输出完整列
    fr      dfg     rte
    [root@linuxprobe test]# awk '$1 ~ /er/ {print $0}' a.txt   ## 同上
    er      ewr     scf
    [root@linuxprobe test]# awk '$2 ~ /fgd/ {print $0}' a.txt  ## 同上
    dg      fgd     rtw

    3、提取特定列以特定字符开头结尾的行

    [root@linuxprobe test]# awk '$2 ~ /^f/ {print $0}' a.txt ## 提取第二列以f开头的行
    dg      fgd     rtw
    [root@linuxprobe test]# awk '$3 ~ /^r/ {print $0}' a.txt ## 提取第三列以r开头的行
    fr      dfg     rte
    dg      fgd     rtw
    [root@linuxprobe test]# awk '$1 ~ /r$/ {print $0}' a.txt  ## 提取第一列以r结尾的行
    fr      dfg     rte
    er      hdf     fgh
    er      ewr     scf
    [root@linuxprobe test]# awk '$3 ~ /^r|^s/ {print $0}' a.txt  ## 同时提取第三列以r开头或者以s开头的行
    fr      dfg     rte
    dg      fgd     rtw
    er      ewr     scf
    [root@linuxprobe test]# awk '$3 ~ /^r/ {print $0}' a.txt  ## 提取第三列以r开头的行
    fr      dfg     rte
    dg      fgd     rtw
    [root@linuxprobe test]# awk '$3 ~ /^r.*w$/ {print $0}' a.txt ##提取第三列以r开头同时以w结尾的行
    dg      fgd     rtw
  • 相关阅读:
    既然选择了远方,就只顾风雨兼程!
    slots
    面向对象
    模块和作用域
    偏函数
    python中decorator
    返回函数
    filter, sort
    map/reduce
    开发步骤
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/13785250.html
Copyright © 2020-2023  润新知