当前位置:网站首页>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}' //输出文件偶数行
边栏推荐
- 每日sql - 判断+聚合
- TOP2两数相加
- HCIP OSPF dynamic routing protocol
- Multiscale communication in cortical-cortical networks
- 从 dpdk-20.11 移植 intel E810 百 G 网卡 pmd 驱动到 dpdk-16.04 中
- Spatial Pyramid Pooling -Spatial Pyramid Pooling (including source code)
- Open Set Domain Adaptation 开集领域适应
- 李沐d2l(十)--卷积层Ⅰ
- 使用Keras构建GAN,以Mnist为例
- Resolved EROR 1064 (42000): You have an error in. your SOL syntax. check the manual that corresponds to yo
猜你喜欢
HCIP BGP建邻、联邦、汇总实验
Daily sql-seek the sum of successful investments in 2016
Coordinate system in navigation and positioning
Implement general-purpose, high-performance sorting and quicksort optimizations
抖音API接口大全
姿态解算-陀螺仪+欧拉法
Spatial Pyramid Pooling -Spatial Pyramid Pooling (including source code)
radix-4 FFT principle and C language code implementation
淘宝商品详情API接口
淘宝API接口参考
随机推荐
淘宝sku API 接口(PHP示例)
concept noun
Conference OA Project My Conference
MySQL01
OA Project Pending Meeting & History Meeting & All Meetings
HCIP-BGP的选路实验
My approval of OA project (inquiry & meeting signature)
exness:黄金1800关口遇阻,静待美国CPI出炉
HCIP 重发布/路由策略实验
HCIA实验
图的拉普拉斯矩阵
阿里巴巴规范之POJO类中布尔类型的变量都不要加is前缀详解
图文带你理解什么是Few-shot Learning
每日sql-求2016年成功的投资总和
【预约观看】Ambire 智能钱包 AMA 活动第四期即将举行
八股文之redis
OA project meeting notice (query & whether attending & feedback for details)
torch.cat()用法
Multiscale communication in cortical-cortical networks
Get Pinduoduo product information operation details