当前位置:网站首页>Shell脚本文本三剑客之awk
Shell脚本文本三剑客之awk
2022-07-27 11:01:00 【不回头的蛙兄】
目录
1 awk工具介绍
- AWK 是一种处理文本文件的语言,是一个强大的文本分析工具
- 可以在无交互的模式下实现复杂的文本操作
- 相较于sed常作用于一整个行的处理,awk则比较倾向于一行当中分成数个字段来处理,因为awk相当适合小型的文本数据。
1.1 工作原理
当读到第一行时,匹配条件,然后执行指定动作,再接着读取第二行数据处理,不会默认输出。如果没有定义匹配条件默认是匹配所有数据行,awk隐含循环,条件匹配多少次动作就会执行多少次。
逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。
sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个"字段"然后再进行处理。awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。
在使用awk命令的过程中,可以使用逻辑操作符“&&”表示“与”、“||”表示“或”、“!”表示“非”;还可以进行简单的数学运算,如+、-、*、/、%、^分别表示加、减、乘、除、取余和乘方。
命令格式:
- awk [选项] ‘模式条件{操作}’ 文件1 文件2...
- awk -f|-v 脚本文件 文件1 文件.....
1.2 awk常见的内建变量(可直接用)
- FS∶ 列分割符。指定每行文本的字段分隔符,默认为空格或制表位。与"-F"作用相同
- NF∶ 当前处理的行的字段个数。
- NR∶ 当前处理的行的行号(序数)。
- $0∶当前处理的行的整行内容。
- $n∶ 当前处理行的第n个字段(第n列)。
- FILENAME∶ 被处理的文件名。
- RS∶ 行分隔符。awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录,而awk一次仅读入一条记录,以进行处理。预设值是’\n’。简说为:数据记录分隔,默认为\n,即每行为一条记录
2 实例
2.1 打印文本内容
例










扩展生产:网卡的ip、流量

2.2 awk的运算
逐行执行开始之前执行什么任务,结束之后再执行什么任务,用BEGIN、END
BEGIN一般用来做初始化操作,仅在读取数据记录之前执行一次
END一般用来做汇总操作,仅在读取完数据记录之后执行一次

例


2.2.1模糊匹配,用~表示包含,!~表示不包含


2.2.2 关于数值与字符串的比较
比较符号:== != <= >= < >

2.2.3 逻辑运算 &&(与)、||(或)


2.2.4 其他内置变量的用法
- FS:输入字段的分隔符 默认是空格
- OFS:输出字段的分隔符 默认也是空格
- NR∶ 当前处理的行的行号(序数)
- FNR:读取文件的记录数(行号),从1开始,新的文件重新重1开始计数
- RS:输入行分隔符 默认为换行符
- ORS:输出行分隔符 默认也是为换行符
例




3 awk高级用法

调用函数getline,读取一行数据的时候并不是得到当前行而是当前行的下一行




边栏推荐
- Detailed explanation of MATLAB S-function
- N ¨UWA: Visual Synthesis Pre-training for Neural visUal World creAtionChenfei
- Firewalld防火墙
- 第8章 多线程
- The C programming language (2nd) -- Notes -- 1.9
- makefile模板
- Shell编程之正则表达式(Shell脚本文本三剑客之grep)
- Maker Hongmeng application development training 04
- 【无标题】多模态模型 CLIP
- JUC框架 从Runnable到Callable到FutureTask 使用浅析
猜你喜欢

Maker Hongmeng application development training 04

Maker Hongmeng application development training notes 02

第8章 多线程

Japan Fukushima waste dump safety monitoring agreement will recognize the "safety" of the sea discharge plan

PWM的原理和PWM波的产生
Synchronous use reference of the new version of data warehouse (for beginners)

SMA TE: Semi-Supervised Spatio-Temporal RepresentationLearning on Multivariate Time Series

IDEA: Can‘t use Subversion command line client:svn 解决方案

【机器学习-白板推导系列】学习笔记---概率图模型和指数族分布

Principle of PWM and generation of PWM wave
随机推荐
Keil MDK compilation appears..\user\stm32f10x H (428): error: # 67: expected a "}" wrong solution
The C programming language 2nd -- Notes -- 6.7
LeetCode 02: 剑指 Offer 58 - I. 翻转单词顺序(简单); T123. 验证回文串 ; T9. 回文数
makefile模板
Basic use of cmake
Common power supply problems and solutions of Arduino
Japan Fukushima waste dump safety monitoring agreement will recognize the "safety" of the sea discharge plan
LeetCode 04: T26. 删除排序数组中的重复项(简单); 剑指 Offer 67. 把字符串转换成整数(中等); 面试题 01.08. 零矩阵 (简单)
Moveit2 - 5. Scenario Planning
Shell编程之正则表达式(Shell脚本文本三剑客之grep)
微商的差商近似
为什么选择智能电视?
本地虚拟机初始化脚本
Difference between verification and calibration
LAN SDN technology hard core insider 13 from LAN to Internet
【无标题】多模态模型 CLIP
The C programming language (2nd) -- Notes -- 1.6
LAN SDN hard core technology insider 23 looking forward to the future - RDMA (Part 1)
Error encountered in adding quick open option to right-click menu:
w.r.t. ; i.e.; etc.; e. G. what does it mean