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
复制代码

 

posted @   小鲨鱼2018  阅读(2675)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示