awk:
grep,sed,awk
grep:文本过滤
sed:文本编辑
awk:文本格式化工具;
一、什么是awk、nawk、gawk
awk是一种用于处理数据和生成报告的UNIX编程语言。当然也用来处理文本文件,相较于sed,个人认为awk命令的可读性更强,sed命令功能的确强大,但不太熟悉的人,看起来有些懵逼。比如n 和 -n不是同一个东西,同样也存在格式不太统一的问题,大部分东西都是字母简写,命令和选项混在一起,看起来着实费劲。
下面来介绍一下awk:
1、名字由来
awk是3个姓氏的首字母,代表创建该语言的3位作者:Alfred V.Aho、Brian W.Kernighan、Peter J.Weinberger。当然也可以叫它wak或kaw,但常用的时awk。
2、出现的时间
为啥要着重说一下出现时间呢?因为这东西的确是个IT老工具了,70年代的东东,现在还没有淘汰,可见实用性一斑呀。
最初编写于1977年,1985年得以改进以支持更大的程序,还增加了可用户自定义函数、动态正则表达式、同时处理多个输入文件等功能。
3、常见版本
awk的版本有很多,包括old awk、new awk、GNU awk(gawk)、POSIX awk等
nawk是awk的新版本(new-awk),gawk是基于Linux的GNU版本。不过在系统中统统都直接使用awk即可,因为即使是gawk,也是awk的链接。
# ll /usr/bin/awk
lrwxrwxrwx. 1 root root 4 Feb 7 22:12 /usr/bin/awk -> gawk
二、awk的格式:
基本语法:awk [options] ‘program’ filename …
program: pattern{action statements}
awk [options] 'pattern {action}’ filename
选项 模式 操作
options
awk的选项,算是我用过命令里面,功能强大,但option最少的命令了。常见而且常用的就下面两个,其他的可以暂且忽略了