shell学习之awk或gawk
2019独角兽企业重金招聘Python工程师标准>>>
AWK 是该编程语言本身的名称,它编写于 1977 年。其名称是三个主要作者的姓的首字母缩写:Drs. A. Aho、P. Weinberger 和 B. Kernighan。
因为 AWK 是一种文本处理和模式匹配语言,所以它通常称为数据驱动的语言,程序语句描述需要进行匹配和处理的输入数据,而不是程序操作步骤的序列,在许多语言中都是这样的。AWK 程序在其输入数据中搜索包含模式的记录、对该记录执行指定的操作,直到程序到达输入的末尾。
AWK 语言是一种 UNIX 备用工具,它是一种功能强大的文本操作和模式匹配语言,特别适用于进行信息检索,这使得它非常适合用于当今的数据库驱动的应用程序。
虽然基本在linux的发行版中都没有默认安装gawk程序,但是我用的腾讯云的机器上是已经安装了,腾讯云默认安装了很多软件。
我还是比较喜欢用ubuntu的,可以使用apt-get install 安装,在mac中可以用 brew install,或者你可以下载了编译安装!
gawk程序让流编辑迈上了一个新的台阶,它 提供了一种编程语言而不只是编辑器命令。常用来从大文本文件中提取数据元素,并将它们格式化成可读的 报告。在gawk编程语言中,你可以做下面的事情:
- 定义变量来保存数据;
- 使用算术和字符串操作符来处理数据;
- 使用结构化编程概念(比如if-then语句和循环)来为数据处理增加处理逻辑;
- 通过提取数据文件中的数据元素,将其重新排列或格式化,生成格式化报告
在上面的截图中,已经展示了gawk的用法,和一些功能参数。
gawk会将如下变量分配给它在文本行中发现的数据字段,$0代表整个文本行;$1代表文本行中的第1个数据字段; $2代表文本行中的第2个数据字段; $n代表文本行中的第n个数据字段。awk中默认的字段分隔符是任意的空白字符。
AWK 程序由规则 组成,它们是一些模式,后面跟着由换行分隔的操作。当 AWK 执行一条规则时,它在输入记录中搜索给定模式的匹配项,然后对这些记录执行给定的操作。
比如我用上次那个文本 testfile
使用gawk '{print $4}' testfile
除了print操作,我们还可以使用其他的操作
如果你对分隔符有特殊的要求,那么你还可以使用 -F后面接分隔符,比如gawk -F: '{print $1}' /etc/passwd
你也可以组合使用命令行,比如echo "My name is Rich" | gawk '{$4="Christine"; print $0}'
第一条命令会给字段变量$4赋值。第二条命令会打印整个数据字段。
gawk可以使用BEGIN在处理数据前或者处理后END执行脚本。
在 GAWK 中,其模式匹配机制类似于 egrep
命令的模式匹配机制。要仅输出那些匹配模式的记录,可以在规则中指定该模式,使用斜杠字符括起来。
awk '/dog2/ { print }' testfile 去匹配下面的记录
可以写成下面的多个匹配 awk '/dog2/ && /fox/ { print }' testfile
虽然awk和gawk有着强大的功能,但是用的不是很多,暂时就先写这么多吧!
参考:
http://www.runoob.com/linux/linux-comm-awk.html
https://www.cnblogs.com/xudong-bupt/p/3721210.html
转载于:https://my.oschina.net/u/2277632/blog/2963338
shell学习之awk或gawk相关推荐
- shell学习之awk
linux shell awk 语法 Awk 是一种非常好的语言,同时有一个非常奇怪的名称.在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧 ...
- Shell学习总结-awk实用程序
FS---分隔符 OFS---(输出字段分隔符) NF---总的行数 NR---当前的行数 目录 什么是awk.nawk.gawk 从文件输入 从命令输入 BEGIN模式 END模式 包含BEGIN和 ...
- Shell学习之结合正则表达式与通配符的使用(五)
Shell学习之结合正则表达式与通配符的使用 目录 通配符 正则表达式与通配符 通配符 通配符的使用 正则表达式 正则表达式 正则表达式的使用 通配符 正则表达式与通配符 正则表达式用来在文件中匹配符 ...
- shell学习-基础篇
shell学习-基础篇 Linux? 挺好的! shell是基础- 最近利用闲暇时间在 http://c.biancheng.net/ 网站上学习了shell基础篇,整理成博客以加深理解 文章目录 L ...
- shell脚本中awk应用,数组的定义使用
1.awk的基础应用 1.1,概念 除了使用 sed 命令,Linux 系统中还有一个功能更加强大的文本数据处理工具,就是 awk.它诞生于 20 世纪 70 年代末期,这也许是它影响了众多 Linu ...
- shell学习笔记 (2)
shell学习笔记 (2) ---china.pub.com linux shell电子书学习笔记 第2章 使用find和xargs find pathname -options [-print - ...
- shell中join链接多个域_Linux Shell中使用awk完成两个文件的关联Join
Shell中的awk命令是非常强大的,有很多书籍专门介绍awk的.本文介绍的只是其中很小的一个点,使用awk命令完成两个文件的关联join. 先看看awk中的两个自身变量,NR和FNR. awk可以指 ...
- 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等
1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...
- Shell编程:awk使用总结
1. 什么是awk awk是Unix/Linux提供的样式扫描与处理工具,非常擅长处理结构化数据和生成表单.与sed 和grep 很相似,但功能却超过大于两者,由于awk具备各种脚本语言的特点,所以也 ...
最新文章
- 16进制魔术数字 0xdeadbeef Leet英文转写形式 简介
- C++面试八股文快问快答の基础篇
- oracle常用函数api,Oracle-API OracleAPI、oracle10G函数大全(常用函数)、 联合开发网 - pudn.com...
- php中控车牌识别push协议,车牌识别一体机的RS485小接口——实现透明传输!
- web功底之强,实属罕见。。
- poi动态创建文档_POI创建的文档具有不同条件的灵活样式
- 最长子串(FZU2128)
- 案例 月工作列表 c# 1614099857
- 方阵的迹(trace)及其微分(导数)
- CString Format
- MySQL 性能优化神器 Explain 使用分析
- MVX Android设计架构浅析-MVP
- 本经阴符七术--鬼谷子
- Linux之ARM(IMX6U)裸机汇编LED驱动实验--烧写bin文件到SD卡中并运行
- 论文笔记:WORD TRANSLATION WITHOUT PARALLEL DATA
- Arm NEON intrinsics指令格式
- 牛客网第九场多校联赛 	E Music Game
- vim中字母大小写变换
- 全球台式计算机出货量,Gartner:2020年全球PC电脑出货量达到2.75亿台 同比增长4.8%...
- Android pins 模块化架构gradle配置
热门文章
- 看看webpack打包优化
- php 变量类型 typeof,typeof和instanceof的区别是什么
- docker from指令的含义_volume_from指令-docker撰写
- oracle请求界面,Oracle EBS如何enable 请求界面 View XML按钮
- Maven使用注解配置SQL映射器(@Select,@Insert,@Update,@Delete)
- iframe调用父页面js方法_JS高级技巧
- fwOA获取当前用户信息及常用数据库表
- java 中class相关的问题
- 获取网关IP和MAC 的VB源码
- vb与数据库(二)之迟到的学生信息管理系统总结