awk基础查询命令
AWK命令
awk中的内置变量
FS (field separator) 字段分隔符
NS (number records)表示行号信息
NF(number of fileds) 每一行有多少列
#实验环境
cat >>/root/info.txt<<EOF
Zhang andy 41117397 :250:100:175
zhao bob 390320151 :155:90:201
liu cili 80042789 :250:60:50
wang haha 70271111 :250:80:75
Liu kiki 41117483 :250:100:175
wu dudu 3515064655 :50:95:135
du lili 1986787350 :250:168:200
liu jingjing 918391635 :175:75:300
Li gougou 918391635 :250:100:175
EOF
查询案例
-F 指定分隔符
NR== 行号信息
# 查看文件的指定行
[root@localhost ~]# awk 'NR==1' info.txt
Zhang andy 41117397 :250:100:175
#查看含有bob的这一行
[root@localhost ~]# awk '/bob/' info.txt
zhao bob 390320151 :155:90:201
#按列查找 第一行的第一列和第二例
[root@localhost ~]# awk 'NR==1{print $1 $2}' info.txt
Zhangandy
# 查找第三列包含0 的
[root@localhost ~]# awk '$3~/0+/' info.txt
zhao bob 390320151 :155:90:201
liu cili 80042789 :250:60:50
wang haha 70271111 :250:80:75
wu dudu 3515064655 :50:95:135
du lili 1986787350 :250:168:200
# ~ 包含或者匹配后面的信息
# !~ 不包含或不匹配后面的信息
查询进阶案例
# 查询cili的姓氏和ID
[root@localhost ~]# awk '$2~/cili/{print $1,$3}' info.txt
liu 80042789
# 查看姓氏为wu ,的 姓名 和 第二个数字
[root@localhost ~]# awk -F "[ :]+" '$1~/wu/{print $1,$2,$5}' info.txt
wu dudu 95
#显示lili的数字, 并以$开头
[root@localhost ~]# awk '$2~/lili/{gsub(/:/,"$",$NF);print $0}' info.txt
du lili 1986787350 $250$168$200
参考oldboy案例
posted on 2022-02-15 23:59 joe_HelloWorld 阅读(657) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!