awk 简介
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和c语言的相同之处,灵活性是awk最大的优势。
awk命令格式
awk [options] 'script' var=value file(s)
awk [options] -f scriptfile var=value file(s)
-f fs fs指定输入分隔符,fs可以是字符串或正则表达式
-v var=value 赋值一个用户定义变量,将外部变量传递给awk
-f scriptfile 从脚本文件中读取awk命令
其中script格式:awk脚本是由模式和操作组成的。
模式,模式可以是以下任意一种
- 正则表达式:使用通配符的扩展集
- 关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试
- 模式匹配表达式:用运算符~匹配和~!不匹配
- begin语句块,pattern语句块,end语句块
操作
- 操作由一个或多个命令、函数、表达式组成,之间由换行符或分号隔开,并位于大刮号内,
- 主要部分是:变量或数组赋值、输出命令、内置函数、控制流语句。