当前位置:网站首页>Shell:三剑客之awk
Shell:三剑客之awk
2022-08-11 05:36:00 【人间若有一两风】
一、awk的概述
awk:Aho, Weinberger, Kernighan,报告生成器,格式化文本输出,GNU/Linux发布的AWK目前由自由软件基金会(FSF)进行开发和维护,通常也称它为 GNU AWK
有多种版本:
AWK:原先来源于 AT & T 实验室的的AWK
NAWK:New awk,AT & T 实验室的AWK的升级版
GAWK:即GNU AWK。所有的GNU/Linux发布版都自带GAWK,它与AWK和NAWK完全兼容
二、工作原理和格式
1、工作原理
- 当读到第一行时,匹配条件,然后执行指定动作,再接着读取第二行数据处理,不会默认输出
- 如果没有定义匹配条件默认是匹配所有数据行,awk隐含循环,条件匹配多少次动作就会执行多少次
逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。
- sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个""字段"然后再进行处理。
- awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。
- 在使用awk命令的过程中,可以使用逻辑操作符"
&&“表示"与”、“||表示"或”、"!“表示非”;还可以进行简单的数学运算,如+、一、*、/、%、^分别表示加、减、乘、除、取余和乘方。
显示一个空格,空格需要用双引号引起来,如果不用引号默认以变量看待,如果是常量就需要双引号引起来
2、awk格式
格式:
awk [选项] ‘模式条件{操作}’ 文件1 文件2....
awk -f|-v 脚本文件 文件1 文件2.....
3、awk内置变量
FS:输入字段分隔符,默认为空格或制表位(tab)
OFS:输出字段的分割符(默认是空格)
RS:输入行分隔符
ORS:输出行的分割符,默认为换行符
NF:当前处理的行的字段个数
NR:当前处理的行的行号(序数)
FNR:读取文件的记录行号(从1开始,若读取新的文件依旧是从1开始)
$0:当前处理的行的整行内容
$n:当前处理行的第n个字段(第n列)
FILENAME:被处理的文件名
4、awk命令的用法
awk '{print}' passwd.bak //输出所有内容,{print}与{print $0}等同
awk 'NR==1,NR==3{print}' passwd.bak //输出1-3行的内容
awk '/^root/{print}' passwd.bak //输出以root开头的行
cat -n passwd.bak |awk '(NR%2==1){print}' //输出文件的奇数行
cat -n passwd.bak |awk '(NR%2==0){print}' //输出文件偶数行
边栏推荐
- Open Set Domain Adaptation 开集领域适应
- 损失函数——负对数似然
- Find the shops that have sold more than 1,000 yuan per day for more than 30 consecutive days in the past six months
- Implement general-purpose, high-performance sorting and quicksort optimizations
- 核方法 Kernel method
- 每日sql-统计各个专业人数(包括专业人数为0的)
- HCIA knowledge review
- HCIP-Spanning Tree (802.1D, Standard Spanning Tree/802.1W: RSTP Rapid Spanning Tree/802.1S: MST Multiple Spanning Tree)
- 八股文之jvm
- 每日sql -用户两天留存率
猜你喜欢
随机推荐
已解决EROR 1064 (42000): You have an error in. your SOL syntax. check the manual that corresponds to yo
My approval of OA project (inquiry & meeting signature)
MySQL之函数
微信小程序功能上新(2022.06.01~2022.08.04)
pytorch调整模型学习率
损失函数——交叉熵
unable to extend table xxx by 1024 in tablespace xxxx
《猪猪1984》NFT 作品集将上线 The Sandbox 市场平台
华为防火墙-2-状态检测与会话
【预约观看】Ambire 智能钱包 AMA 活动第四期即将举行
mysql视图与索引
Daily sql-seek the sum of successful investments in 2016
WiFi Deauth 攻击演示分析 // mdk4 // aireplay-ng// Kali // wireshark //
torch.cat()使用方法
numpy和tensor增加或删除一个维度
HCIP BGP建邻实验
自定义MVC增删改查
图的拉普拉斯矩阵
抖音分享口令url API工具
矩阵分析——微分、积分、极限