Shell编程三剑客之 awk

目录

一、awk 介绍

1、awk 简介

2、工作原理

3、命令格式

二、awk 常见的内置变量

三、实例演示

1. 指定分隔符

2. 显示一个空格作为间隔

 3. 输出第一列和最后一列

4. 打印包含root的整行内容

5.  以冒号为分隔 打印每一行的字段个数

 6. 打印包含root内容的行 行号

 7. 显示出行号,并打印整行内容

 8. 打印第2行,不加print也一样,默认打印

 9. 打印第2行,第1列

10.  打印总行数,打印文件最后一行

 11. 利用中文调整显示内容

 12.BEGIN  END

13. FS使用

​14. 定义变量传给FS

14. 模糊匹配 精确匹配


一、awk 介绍

1、awk 简介

在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本,默认以空格或tab键作为分隔符作为分隔,并按模式或者条件执行编辑命令。而awk比较倾向于将一行分成多个字段然后进行处理。AWK信息的读入也是逐行

指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互

的情况下实现相当复杂的文本操作,被广泛应用于 Shell 脚本,完成各种自动化配置任务。

2、工作原理

前面提到sed 命令常用于一整行的处理而awk比较倾向于将一行分成多个字段"然后再进行处理,且默认情况下字段的分隔符为空格或tab键。awk执行结果可以通过print的功能将字段数据打印显示。

  • 当读到第一行时,匹配条件,然后执行指定动作,再接着读取第二行数据处理,不会默认输出

  • 如果没有定义匹配条件默认是匹配所有数据行,awk隐含循环,条件匹配多少次动作就会执行多少次

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

  • sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个""字段"然后再进行处理。

  • awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。

  • 在使用awk命令的过程中,可以使用逻辑操作符" &&“表示"与”、“||表示"或”、"!“表示非”;还可以进行简单的数学运算,如+、一、*、/、%、^分别表示加、减、乘、除、取余和乘方。

3、命令格式

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

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

二、awk 常见的内置变量

  • FS 指定每行的字段分隔符,默认为空格或制表位(相当于选项 -F )

  • OFS 输出字段的分隔符,默认也是空格

  • NF 当前处理的行的字段个数(就是:有多少列)

  • NR 当前处理的行的行号(就是:有多少行

  • $0 当前处理的行的整行内容(就是:表示一行的内容)

  • $n 当前处理行的第n个字段(就是:第n列

  • FILENAME 被处理的文件名

  • RS 行分割符。awk从文件上读取资料时,将根据Rs的定义把资料切割成许多条记录,而awk一次仅读取一条记录,预设值是“\n“

  • ORS 输出分割符,默认也是换行符

  • FNR 读取文件的记录数(行号),从1开始,新的文件重新从1开始计数</

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值