当前位置:网站首页>shell (text printing tool awk)
shell (text printing tool awk)
2022-08-10 21:52:00 【Guannan cattle x people】
目录
AWK概述
awk是一种处理文本文件的语言,是一个强大的文本分析工具.awk是一种处理文本文件的语言,是一个强大的文本分析工具.
它是专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描、过滤、统计汇总工作数据可以来白标准输入也可以是管道或文件
20世纪70年代诞生于贝尔实验室,现在centos7用的是gawk
可以在无交互的模式下实现复杂的文本操作;数据可以来自标准输入也可以是管道或文件
相较于sed常作用于一整个行的处理,awk则比较倾向于一行当中分成数个字段来处理,因为awk相当适合小型的文本数据.
awk工作原理
他和sed的区别
前面提到sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个"字段"然后再进行处理,And by default the fields areThe delimiter is a space or tab键.awk 执行结果可以通过print的功能将字段数据打印显示.
在使用awk命令的过程中,可以使用逻辑操作符"&&“表示"与”、"||“表示"或”、"!“表示"非”;还可以进行简单的数学运算,如+、-、*、/、%、^分别表示加、减、乘、除、取余和乘方.
awk后面接两个单引号并加上大括号{ }来设置想要对数据进行的处理操作,awk可以处理后续接的文件,也可以读取来自前个命令的标准输.
当读到第一行时,匹配条件,然后执行指定动作,再接着读取第二行数据处理,不会默认输出
如果没有定义匹配条件默认是匹配所有数据行,awk隐含循环,条件匹配多少次动作就会执行多少次
逐行读取文木,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令
AWK命令的格式
awk 选项 ‘模式或条件{编辑命令}’ 文件1 文件2…. //过滤并输出文件中符合条件的内容
awk -f 脚本文件 文件1 文件2… //从脚本中调用的编辑指令,过滤并输出内容
格式: awk关键字 选项 命令部分 '{xxxxxx}' 文件名
awkContains several common built-in variables(可直接用)
变量 | 意义 |
---|---|
FS: | 指定每行文本的字段分隔符,默认为空格或制表位; |
NF: | 当前处理的行的字段个数; |
NR: | 当前处理的行的行号(序数); |
$0: | 当前处理的行的整行内容; |
$n: | 当前处理的行的第n个字段(第n列); |
FILENAME: | 被处理的文件名; |
RS: | 数据记录分隔,默认为\n,即每行为一条记录. |
例:
Displays the separated fifth column with a colon as a delimiter
Display the first and second columns separated by colons
The effect is the same
用制表符作为分隔符输出
定义多个分隔符,只要看到其中一个都算作分隔符
awk常用内置变量:$1、$2、NF、NR、$0
$1:代表第一列
$2:代表第二列 以此类推
$0:代表整行
NF:一行的列数
NR:行数
案例
打印包含root的整行内容
打印每一行的列数,显示行号
Displays the line number of the processed line and the entire line content
打印第二行,不加print也一样,默认就是打印
打印第二行的第一列
打印最后一行
Prints the total number of lines and prints the last line of the file,END是汇总的意思
可以输入中文
扩展案例:网卡的ip、流量
扩展案例:根分区的可用量
BEGIN和END的用法与区别
逐行执行开始之前执行什么任务,结束之后再执行什么任务,用BEGIN、END
BEGIN:一般用来做初始化操作,仅在读取数据记录之前执行一次
END:一般用来做汇总操作,Execute again only after the data record has been read
awk的运算案例:
模糊匹配,用~表示包含;!~表示不包含
关于数值与字符串的比较
比较符号:== != <= >= < >
Print the line number as th5行的内容
Print line number less than5行的内容;Use colons to separate the values of the third column0的行
精确匹配
Numbers are combined with string comparisons and logical operations
filter columns
其他内置变量的用法FS(输入)、OFS、NR、FNR、RS、ORS
Add the first three
NF 字段个数(读取的列数)
NR 记录数(行号)从1开始,The new document continues the above technique,新文件不从1开始
FNR 读取文件的记录数(行号),从1开始,新的文件重新从1开始计数
FS 输入字段分隔符,默认是空格
OFS 输出字段分隔符,默认是空格
RS 输入行分隔符,默认为换行符
ORS 输出行分隔符,默认为换行符
在打印之前定义字段分隔符为冒号
FNR和NR的区别
RS和ORS的区别
awk高级用法
定义引用变量
案例:
调用函数getline:读取一行数据的时候并不是得到当前行而是当前行的下一行
显示偶数行;显示奇数行
awk中使用if语句
awk的if语句也分为单分支、双分支和多分支
单分支为if () {}
双分支为if() {}else{}
多分支为if() {}else if () {}else{}
总结
Usage of base regular expression and extended regular expression metacharacters in regular expressions,And the online Three Musketeersgrep、sed、awkHow to use and use cases combined with regular expressions and text widgetscut、sort、uniq、trexample of usage,掌握其用法,It can make our work more convenient in the production environment.
边栏推荐
- Live Classroom System 08-Tencent Cloud Object Storage and Course Classification Management
- 美创科技勒索病毒“零信任”防护和数据安全治理体系的探索实践
- 第四届红帽杯网络安全大赛
- How to secure users in LDAP directory service?
- The use of TortoiseSVN little turtle
- Likou 221 questions, the largest square
- 国内Gravatar头像的完美替代方案Cravatar
- shell小技巧(一百三十五)打包指定目录下所用文件,每个文件单独打包
- 卡片盒笔记法的操作步骤
- SELECT:简单的查询操作语法&使用例——《mysql 从入门到内卷再到入土》
猜你喜欢
什么是Jmeter?Jmeter使用的原理步骤是什么?
LeetCode-498-对角线遍历
财务年报怎样翻译,为什么要选择专业翻译公司?
【PCBA solution】Electronic grip strength tester solution she'ji
华为路由器旁挂引流实验(使用流策略)
【PCBA方案设计】蓝牙跳绳方案
Are you hungry - Institution tree radio
These must-know JVM knowledge, I have sorted it out with a mind map
社区分享|货拉拉通过JumpServer纳管大规模云上资产
管理员必须知道的RADIUS认证服务器的部署成本
随机推荐
地理探测器Geodetector软件的下载、应用与结果解读
流程控制结构——《mysql 从入门到内卷再到入土》
自建函数 测试例和语法——《mysql 从入门到内卷再到入土》
测试代码新的规则
自组织是管理者和成员的双向奔赴
查询:复杂查询的语法和使用例——《mysql 从入门到内卷再到入土》
ACM解题笔记——HDU 1401 Solitaire(DBFS)
Single-click to cancel the function
深度学习之 12 循环神经网络RNN2
Before implementing MES management system, these three questions to consider
数字化转型:如何引导创新领导者
Web Reverse Lilac Garden
Mark!画出漂亮的神经网络图!神经网络可视化工具集锦搜集
Uniapp编译后小程序的代码反编译一些思路
C. Even Picture
Object.assign用法 以及 与$.extend的区别
管理员必须知道的RADIUS认证服务器的部署成本
微擎盲盒交友变现-vp_ph打开慢优化
B. Trouble Sort
数据标注太昂贵?这个方法可以用有限的数据训练模型实现基于文本的ReID!