正则表达式网络三剑客之awk
目录
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相关推荐
- Linux系统Shell脚本第五章:shell数组、正则表达式及文件三剑客之AWK
目录 一.shell数组 1.数组分类 2.定义数组方法 二.正则表达式 1.元字符 2.表示次数 3.位置锚定 4.分组 5.扩展正则表达式 三.文本三剑客之AWK 1.awk 2.使用格式 3.处 ...
- linux三剑客之awk命令详解
linux三剑客之awk命令详解 awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件.数据排序.计算以及生成报表等等.awk工具主要用于格式化输出,可以用类似于处理表格的方式处理文 ...
- linux三个冒号加端口,不看绝对后悔的Linux三剑客之awk实战精讲
一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel).处理的数据可以是 ...
- shell编程系列15--文本处理三剑客之awk格式化输出printf
shell编程系列15--文本处理三剑客之awk格式化输出printfprintf的格式说明符格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o 打印 ...
- shell编程系列20--文本处理三剑客之awk常用选项
shell编程系列20--文本处理三剑客之awk常用选项awk选项总结选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号[root@localhost shel ...
- 文本三剑客之AWK详解
文本三剑客之AWK awk简介 AWK是一种优良的文本处理工具.它不仅是 Linux中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人 Alfred A ...
- Linux三剑客之一 awk
awk:是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言的最大功能取决于一个人所拥有的知识.awk命名:Alfred Aho Peter ...
- 利器 | 测试必会之 Linux 三剑客 ( grep / awk / sed )
本文为霍格沃兹测试学院优秀学员课程学习系列笔记,想一起系统进阶的同学文末加群交流. Linux 给人的印象是黑乎乎的神秘窗口,文本操作和数据处理似乎没有 Windows 窗口界面直观方便.其实Linu ...
- Linux三剑客之awk详解
第一篇 awk简介与表达式实例 一种名字怪异的语言 模式扫描和处理,处理数据和生成报告. awk不仅仅是linux系统中的一个命令,而且是一种编程语言:它可以用来处理数据和生成报告(excel):处理 ...
- Linux文本处理三剑客(awk、grep、sed)
目录 grep 简介 实际使用 小结 sed awk 名字由来 强大的文本处理工具 语法 域 模式&动作 结合正则 复合表达式 printf 格式化输出 内置变量 内置函数 awk脚本 gre ...
最新文章
- PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)
- boost::graph模块实现从连接的平面图开始并添加边以使图最大平面化
- VTK:可视化算法之SpikeFran
- php 获取已用空间,PHP5:获取导入的名称空间列表 - php
- 深入理解Oracle索引(17):Cost 值相同 CBO 对索引的选择
- 如何实现伸缩 (折叠) 报表?
- STM32启动模式及API(转)
- poythoncode-实战5--excel 文件读取,文本文件,csv文件,存到系统中以大列表方式进行存储
- c语言程序流程图怎么写,C语言课程设计————写下流程图! 谢谢
- PPT常见的几种排版技巧,你都掌握了吗?
- ppt制作弹跳的小球动画效果_你不能错过的PPT制作酷炫弹跳的小球教程
- C语言中自定义的标识符
- 阿里云服务器如何使用?阿里云服务器入门使用教程
- 以CRM系统为案例讲解数据分析(重要性介绍及分析方法)
- c语言输出星号一行比一行星号少一个,c语言打印空白星号矩形
- android 手机开门,1号社区APP"手机开不了门后的处理流程"
- 青春是一场不失不忘的期许
- PS制作一个百度的小熊掌LOGO
- 最长公共子序列(LCS)的C++实现
- python动物重量排序详解