当前位置:网站首页>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}' //输出文件偶数行
边栏推荐
- 1688 product interface
- 抖音API接口
- HCIP-Spanning Tree (802.1D, Standard Spanning Tree/802.1W: RSTP Rapid Spanning Tree/802.1S: MST Multiple Spanning Tree)
- unable to extend table xxx by 1024 in tablespace xxxx
- 亚马逊API接口大全
- LabelEncoder和LabelBinarizer的区别
- 华为防火墙-4-安全策略
- 微信小程序功能上新(2022.06.01~2022.08.04)
- HCIP Republish/Routing Policy Experiment
- redis + lua实现分布式接口限流实现方案
猜你喜欢
随机推荐
TOP2两数相加
Amazon API interface Daquan
华为防火墙-2-状态检测与会话
【深度学习】什么是互信息最大化?
Taobao sku API interface (PHP example)
unable to extend table xxx by 1024 in tablespace xxxx
拼多多API接口(附上我的可用API)
HCIP OSPF/MGRE Comprehensive Experiment
HCIP Republish/Routing Policy Experiment
HCIP MPLS/BGP Comprehensive Experiment
TOP2 Add two numbers
HCIP experiments (pap, chap, HDLC, MGRE, RIP)
Do not add the is prefix to the variables of the boolean type in the POJO class of the Alibaba specification
HCIP BGP built adjacent experiment
ETCD Single-Node Fault Emergency Recovery
Multiscale communication in cortical-cortical networks
亚马逊API接口大全
HCIA实验
概念名词解释
radix-4 FFT principle and C language code implementation