目录

1、前言

2、awk工作原理

3、常见的内置变量

4、awk常用的内置变量

4.1、打印包含root的行的第一列和第六列​编辑

4.2、以:/为分割,打印包含root的行数

4.3、显示行号和每行的内容

4.4、打印有几行几列

4.5、打印第二行

5、awk的运算

5.1示例

5.2、模糊匹配

5.3、数值与字符串的比较

6、逻辑运算&& ||

7、其他内置变量

7.1、在打印之前定义字段分隔符为冒号 7.2、OFS定义了输出时以什么分隔

7.3、FNR的行号在追加当有多个文件时

7.4、RS:指定以什么为换行符,这里指定是冒号,你指定的肯定是原文里存在的字符

8、awk高级用法

8.1、定义引用变量

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

8.3、显示奇偶数行

9、if语句:awk的if语句也分为单分支、双分支和多分支

10、总结


1、前言

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。它是专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描、过滤、统计汇总工作。数据可以来自标准输入也可以是管道或文件。20世纪70年代诞生于贝尔实验室,现在centos7用的是gawk。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。

2、awk工作原理

逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。
sed命令常用于一整行的处理,而awk比较、倾向于将一行分成多个""字段"然后再进行处理。
awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。
在使用awk命令的过程中,可以使用逻辑操作符"
&&“表示"与”、“||表示"或”、"!“表示非”;还可以进行简单的数学运算,如+、一、*、/、%、^分别表示加、减、乘、除、取余和乘方。

3、常见的内置变量

参数 含义
FS 指定每行文本的字段分隔符,默认为空格或制表位
NF 当前处理的行的字段个数
NR 当前处理的行的行号(序数)
$0 当前处理的行的整行内容
$n 当前处理行的第 n 个字段(第 n 列)
FILENAME 被处理的文件名
RS 行分隔符

4、awk常用的内置变量

命令 含义
$1 代表第一列
$2 代表第二列以此类推
$0 代表整行
NF 一行的列数
NR 行数

4.1、打印包含root的行的第一列和第六列

4.2、以:/为分割,打印包含root的行数

4.3、显示行号和每行的内容

4.4、打印有几行几列

4.5、打印第二行

5、awk的运算

5.1示例

5.2、模糊匹配

5.3、数值与字符串的比较

6、逻辑运算&& ||

7、其他内置变量

变量名

含义
FS 输入字段的分隔符 默认是空格
OFS 输出字段的分隔符 默认也是空格
FNR 读取文件的记录数(行号),从1开始,新的文件重新重1开始计数
RS 输入行分隔符 默认为换行符
ORS 输出行分隔符 默认也是为换行符

7.1、在打印之前定义字段分隔符为冒号

7.2、OFS定义了输出时以什么分隔

7.3、FNR的行号在追加当有多个文件时

7.4、RS:指定以什么为换行符,这里指定是冒号,你指定的肯定是原文里存在的字符

8、awk高级用法

8.1、定义引用变量

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

8.3、显示奇偶数行

9、if语句:awk的if语句也分为单分支、双分支和多分支

10、总结

awk真好用

正则表达式网络三剑客之awk相关推荐

  1. Linux系统Shell脚本第五章:shell数组、正则表达式及文件三剑客之AWK

    目录 一.shell数组 1.数组分类 2.定义数组方法 二.正则表达式 1.元字符 2.表示次数 3.位置锚定 4.分组 5.扩展正则表达式 三.文本三剑客之AWK 1.awk 2.使用格式 3.处 ...

  2. linux三剑客之awk命令详解

    linux三剑客之awk命令详解 awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件.数据排序.计算以及生成报表等等.awk工具主要用于格式化输出,可以用类似于处理表格的方式处理文 ...

  3. linux三个冒号加端口,不看绝对后悔的Linux三剑客之awk实战精讲

    一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel).处理的数据可以是 ...

  4. shell编程系列15--文本处理三剑客之awk格式化输出printf

    shell编程系列15--文本处理三剑客之awk格式化输出printfprintf的格式说明符格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o 打印 ...

  5. shell编程系列20--文本处理三剑客之awk常用选项

    shell编程系列20--文本处理三剑客之awk常用选项awk选项总结选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号[root@localhost shel ...

  6. 文本三剑客之AWK详解

    文本三剑客之AWK awk简介 AWK是一种优良的文本处理工具.它不仅是 Linux中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人 Alfred A ...

  7. Linux三剑客之一 awk

    awk:是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言的最大功能取决于一个人所拥有的知识.awk命名:Alfred Aho Peter ...

  8. 利器 | 测试必会之 Linux 三剑客 ( grep / awk / sed )

    本文为霍格沃兹测试学院优秀学员课程学习系列笔记,想一起系统进阶的同学文末加群交流. Linux 给人的印象是黑乎乎的神秘窗口,文本操作和数据处理似乎没有 Windows 窗口界面直观方便.其实Linu ...

  9. Linux三剑客之awk详解

    第一篇 awk简介与表达式实例 一种名字怪异的语言 模式扫描和处理,处理数据和生成报告. awk不仅仅是linux系统中的一个命令,而且是一种编程语言:它可以用来处理数据和生成报告(excel):处理 ...

  10. Linux文本处理三剑客(awk、grep、sed)

    目录 grep 简介 实际使用 小结 sed awk 名字由来 强大的文本处理工具 语法 域 模式&动作 结合正则 复合表达式 printf 格式化输出 内置变量 内置函数 awk脚本 gre ...

最新文章

  1. PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)
  2. boost::graph模块实现从连接的平面图开始并添加边以使图最大平面化
  3. VTK:可视化算法之SpikeFran
  4. php 获取已用空间,PHP5:获取导入的名称空间列表 - php
  5. 深入理解Oracle索引(17):Cost 值相同 CBO 对索引的选择
  6. 如何实现伸缩 (折叠) 报表?
  7. STM32启动模式及API(转)
  8. poythoncode-实战5--excel 文件读取,文本文件,csv文件,存到系统中以大列表方式进行存储
  9. c语言程序流程图怎么写,C语言课程设计————写下流程图! 谢谢
  10. PPT常见的几种排版技巧,你都掌握了吗?
  11. ppt制作弹跳的小球动画效果_你不能错过的PPT制作酷炫弹跳的小球教程
  12. C语言中自定义的标识符
  13. 阿里云服务器如何使用?阿里云服务器入门使用教程
  14. 以CRM系统为案例讲解数据分析(重要性介绍及分析方法)
  15. c语言输出星号一行比一行星号少一个,c语言打印空白星号矩形
  16. android 手机开门,1号社区APP"手机开不了门后的处理流程"
  17. 青春是一场不失不忘的期许
  18. PS制作一个百度的小熊掌LOGO
  19. 最长公共子序列(LCS)的C++实现
  20. python动物重量排序详解

热门文章

  1. 当代大学生结课后的一周
  2. 改用Hamibot-艳云脚本云控系统
  3. 微信停止为苹果服务器,苹果手机终于解决了微信延迟
  4. 基于java的条形码生成、读取和打印
  5. 远程手机控制开关应用
  6. python修改游戏数据_python1.2-----pywin32模块/语音合成,窗口闪烁以及修改游戏数据的技巧...
  7. 招聘中使用的奇葩心理分析
  8. 【翻译】Ionic的刷新器-Refresher官方文档翻译
  9. asp.net identity 基础概念篇-理解什么是声明
  10. Win10镜像安装net3.5