awk简单用法-(1)
一、awk基本操作
awk指定多个分割符,分隔符中有:和空格,还有:和空格的组合,这个时候需要指定多个分隔符 -F'[ :]+',[ :]表示分隔符为:和空格,一个或者多个+号表示空格和:的组合也为一个分隔符
打印倒数第一列,以空格和:and空格 “:”的组合为分隔符 [root@VM_0_84_centos ~]# cat aaa |awk -F'[: ]+' '{print $NF}' number 100 0 #打印倒数第二列,以空格和:and空格 “:”的组合为分隔符 [root@VM_0_84_centos ~]# cat aaa |awk -F'[: ]+' '{print $(NF-1)}' age 27 30
假如分隔符为空格,打印第一列 $1为第一列的数据 $0打印整个文件的内容
cat aaa |awk '{print $1}'
二、awk的NR、NF内置变量的应用
NF变量的使用:打印文件的字段数,NF指的是字段的数量,有时候由于文本数据量太大,而且字段切分不规则,会导致使用 '{print $n}'取值会出现错误,建议使用NF来取响应的字段

[root@VM_0_84_centos ~]# cat aaa name: age number ghd 27 100 gym 30 0 [root@VM_0_84_centos ~]# cat aaa |awk '{print NF}' 3 3 3 [root@VM_0_84_centos ~]# cat aaa |awk '{print $NF}' number 100 0 [root@VM_0_84_centos ~]# cat aaa |awk '{print $(NF-2)}' name: ghd gym [root@VM_0_84_centos ~]# cat aaa |awk '{print NF}'
NR变量:打印文件的行的内容

#打印文件的第二行内容 [root@VM_0_84_centos ~]# cat test.txt |awk 'NR==2{print $0}' ghd 27 100 #打印文件的第二行第一个列(字段)的内容 [root@VM_0_84_centos ~]# cat test.txt |awk 'NR==2{print $1}' ghd #打印大于第一行小于第三行的所属行的所有字段,$n为字段数(列) cat test.txt |awk 'NR>1&&NR<3{print $0}' ghd 27 100 #不打印第二行的其它行的所有字段 [root@VM_0_84_centos ~]# cat test.txt |awk 'NR!=2{print $0}' name: age number gym 30 0
练习:
打印文件所有内容,并显示文件内容所属行和字段

cat test.txt |awk -F'[ :]+' '{print NR,NF,$0}' 1 3 name: age number 2 3 ghd 27 100 3 3 gym 30 0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端