shell三剑客-----awk命令

10 篇文章 0 订阅

目录

一,awk概述

1,awk工作原理

二,awk的格式

三,内置变量演示

2, awk常用内置变量

 3,NF(多少列) 和[NR](所少行)的演示

 四,面试题

 五。BEGIN开始和END结尾


一,awk概述

AWK是一种处理文本的语言,是一个强大的文件分析工具。

它专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描过滤统计词汇等工作,数据可以来自标准输入也可以是管道或者文件。

1,awk工作原理

  • 当读到第一行时,匹配条件,然后执行指定动作,在接着读取第二行的数据处理,不会默认输出。
  • 如果没有定义匹配条件,则是默认匹配所有数据行,awk隐含循环,条件匹配多少次,动作就会执行多少次。
  • 逐行读取文本,默认以空格或tab键为分割符进行分割,将分割所得的各个字段,保存到内建变量中,并按模式或条件执行编辑命令

与sed比较

  • sed命令常用一整行的处理,二awk比较倾向于将一行分成多个字段然后再进行处理。
  • awk信息的读入也是逐行读取的,执行结果可以通过print功能将字段数据打印显示。
  • 在使用awk命令的过程中,可以使用逻辑操作符。(&&“表示"与”、“||表示"或”、"!“表示非”;还可以进行简单的数学运算,如+、一、*、/、%、^分别表示加、减、乘、除、取余和乘方。)

二,awk的格式

格式1:awk [选项] '模式或条件{编辑指令}' 文件1 
🛺🚕🚕🛺🛺🛺🛺🛺🛺🛺🛺🛺🚙🚙🚙🚙🚙🚙
格式2:awk -f 脚本文件 文件名

1,awk包含几个特殊的内建变量

内置变量功能
NF当前处理的行的字段个数(就是:有多少列)
NR当前处理的行的行号(就是:有多少行
FNR读取文件的记录数(行号),从1开始,新的文件重新从1开始计数
$0当前处理的行的整行内容(就是:表示一行的内容)
$n当前处理行的第n个字段(就是:第n列
FILENAME被处理的文件名
FS指定每行的字段分隔符,默认为空格或制表位(相当于选项 -F )
OFS输出字段的分隔符,默认也是空格
RS行分割符。awk从文件上读取资料时,将根据Rs的定义把资料切割成许多条记录,而awk一次仅读取一条记录,预设值是“\n“
ORS输出分割符,默认也是换行符

三,内置变量演示

 案例1:结合print进行输出,默认分隔符

 

案例2:设定分割符号

 

 用x作为分隔符

 显示一个空格,空格需要用双引号引起来,如果不用引号默认以变量看待,如果是常量就需要双引号引起来。

 

 逗号有空格效果

 

用制表符作为分隔符号

定义多个分隔符,只要看到其中一个都算作分隔符

2, awk常用内置变量

$1代表第一列
$2代表第二列以此类推
$0代表整行
NF一行的列数
NR行数

 

 3,NF(多少列) 和[NR](所少行)的演示

NR:表示该处理的行序号是多少

NF:表示该处理的行,有多少列

案例1:打印每一行的列数

案例2:显示行号

 案例3:显示行号,并显示每一行的内容

 案例4:打印第二行,不加print也一样,默认就是打印

 

 案例5:打印第二行的第一列

案例6:打印最后一列

案例7:打印总行数 

 

 案例8:打印文件最后一行

 案例9:加上文字描述行数和列数

 

 四,面试题

案例1:查看本机的ip地址多少,截取出来

 

案例2:查看本机流量有多少字节

 

 案例3:查看根分区的可用量

 五。BEGIN开始和END结尾

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AKA|布鲁克林欧神仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值