当前位置:网站首页>Shell编程--awk
Shell编程--awk
2022-08-10 01:33:00 【白给超人】
awk概述
- AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。
- AWK是专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描、过滤、统计汇总工作
- 数据可以来自标准输入也可以是管道或文件
- 20世纪70年代诞生于贝尔实验室,现在centos7用的是gawk
awk工具介绍
- 功能强大的编辑工具
- 无交互的情况下实现复杂的文本操作
awk 选项 '模式或条件 {编辑指令}' 文件 1 文件 2 …
awk -f 脚本文件 文件 1 文件 2 …
awk工作原理
- 当读到第一行时,匹配条件,然后执行指定动作,再接着读取第二行数据处理,不会默认输出
- 如果没有定义匹配条件默认是匹配所有数据行,awk隐含循环,条件匹配多少次动作就会执行多少次
逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。
sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个""字段"然后再进行处理。
awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。
在使用awk命令的过程中,可以使用逻辑操作符" &&“表示"与”、“||表示"或”、"!“表示非”;还可以进行简单的数学运算,如+、一、*、/、%、^分别表示加、减、乘、除、取余和乘方。
awk内置变量
FS:输入字段分隔符,默认为空格或制表位(tab)
OFS:输出字段的分割符(默认是空格)
RS:输入行分隔符
ORS:输出行的分割符,默认为换行符
NF:当前处理的行的字段个数
NR:当前处理的行的行号(序数)
FNR:读取文件的记录行号(从1开始,若读取新的文件依旧是从1开始)
$0:当前处理的行的整行内容
$n:当前处理行的第n个字段(第n列)
未完待续
边栏推荐
猜你喜欢
随机推荐
【每日一题】1413. 逐步求和得到正数的最小值
Open3D 中点细分(网格细分)
Teach you how to write performance test cases
Janus actual production case
In the 2022 gold, nine, silver and ten work tide, how can I successfully change jobs and get a high salary?
谷歌翻译器-谷歌翻译器软件批量自动翻译
one of the variables needed for gradient computation has been modified by an inplace
unity编辑器扩展界面使用 List
小程序开发的报价为什么有差别?需要多少钱?
Not, even the volume of the king to write code in the company are copying and pasting it reasonable?
type-C 边充电边听歌(OTG) PD芯片方案,LDR6028 PD充电加OTG方案
Unity reports Unsafe code may only appear if compiling with /unsafe. Enable “Allow ‘unsafe’ code” in Pla
多线程之自定义线程池
hopscotch game
基于设计稿识别的可视化低代码系统实践
RESOURCE_EXHAUSTED: etcdserver: mvcc: database space exceeded
浏览器中的history详解
【wpf】自定义事件总结(Action, EventHandler)
C# 正则表达式分组查询
高压之下,必有懦夫