Shell 文本三剑客 awk

目录

前言

一、awk工具介绍

二、awk工作原理

三、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完全兼容

GNU AWK 用户手册文档。

         在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本,默认以空格或tab键作为分隔符作为分隔,并按模式或者条件执行编辑命令。而awk比较倾向于将一行分成多个字段然后进行处理。AWK信息的读入也是逐行指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被广泛应用于 Shell 脚本,完成各种自动化配置任务。

gawk:模式扫描和处理语言,可以实现下面功能。

vim : 是将整个文件加载到内存中再进行编辑,受限内存。

awk(语言) : 读取一行处理一行。

一、awk工具介绍

1.功能强大的编辑工具

2.无交互的情况下实现复杂的文本操作

3.命令格式

(1)awk 选项 '模式或条件 { 编辑指令 }' 文件1 文件2

(2)awk -f  脚本文件 文件1 文件2

格式:
awk [options]  'program'  var=value  file...
awk [options]  -f  programfile   var=value file...

说明:
program通常是被放在单引号中,并可以由三种部分组成

BEGIN语句块
模式匹配的通用语句块

END语句块

pattern{action statements;..}
pattern: 决定动作语句何时触发及触发事件,比如: BEGIN, END,正则表达式等
action statements: 对数据进行处理,放在{}内指明,常见: print, printf

常见选项:
-F“ 分隔符”指明输入时用到的字段分隔符,默认的分隔符是若千个连续空白符
-v var=value变量赋值

awk [选项] '模式条件{操作}'文件1文件2....
awk -f|-v  脚本文件  文件1  文件2.....

 

 

  

二、awk工作原理

        逐行读取文本,默认以空格为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。

        awk 比较倾向于将一行分成多个“字段”然后再进行处理,且默认情况下字段的分隔符为空格或 tab 键。awk 执行结果可以通过 print 的功能将字段数据打印显示。

三、awk内置变量

FS:指定每行文本的字段分隔符,缺省为空格或制表符(tab)。与"-F"作用相同 -F -FS一起使用-F的优先级高
NF:当前处理的行的字段个数
NR:当前处理的行的行号(序数)
$0:当前处理的行的整行内容
$n:当前处理行的第n个字段(第n列)
FILENAME:被处理的文件名
RS:行分隔符。awk从文件上读取资料时,将根据RS的定义就把资料切割成许多条记录,而awk一次仅读入一条记录进行处理。预设值是\n
OFS 输出字段的分隔符,默认也是空格
ORS 输出分割符,默认也是换行符
FNR 读取文件的记录数(行号),从1开始,新的文件重新从1开始计数

 

 

 

 

四、自定义变量 

 

综合应用 

 

 

 

猜你喜欢

转载自blog.csdn.net/Drw_Dcm/article/details/126249960