准备一个数据文件 awk-sample-salary.txt
一、Pattern {Action} 详解
这一节的目标:详解 Pattern和{Action}的组合方式, 这两者各自的详解请看下面
这里以简单的正则表达式作为Pattern为例,(Pattern本身又有多种case、组合,请参考 “ 二、Pattern详解 ”)
1.单个Pattern {Action}
/^A/{print} #筛选出以A开头的行,并打印该行数据
//{print} #打印每一行, //表示无条件的匹配,即匹配所有的行 , {print} 没有指定哪一行,默认就是整行,即{print $0}
// #省略掉Action,默认就是 {print}
{print} #省略掉Pattern,默认就是无条件的匹配,即匹配所有的行
执行结果
2.多个 Pattern {Action}
通过;来分割,或者省略;
/^A/{print "Department is A"} ; /John/{print " and Name is Johe"}
/^A/{print "Department is A"} /John/{print " and Name is Johe"}
二、Pattern详解
参见 http://www.aslibra.com/doc/awk.htm 的附录A, 补充如下
摘录GAWK的man帮助:
AWK patterns may be one of the following:
BEGIN
END
/regular expression/
relational expression
pattern && pattern
pattern || pattern
pattern ? pattern : pattern
(pattern)
! pattern
pattern1, pattern2
1. 正则表达式 /regular expression/
/^A/ 行匹配, 等价于 $0 ~ /^A/
$1~// 列匹配, 等价于 // {if(match($1,//)) print}
$1!~// 列匹配取反,等价于 // {if(!match($1,//)) print}
2. 关系表达式 relational expression
注意:Pattern里的关系不能出现 if else ,只有在 {action} 里才可以有if else 等控制语句
awk 提供 C 语言中常见的关系运算符(Relational Operators) :
>,>=,<,<=,==,!=
NF==5 {print}
NR>=3 && NR<=5 {print} #打印第3行到第5行,
$2!="Jhone" {print}
3. Patterns组合
多个Pattern可以通过关系运算符来组合成更复杂的一个Pattern , 加上() 可以控制优先级.
3.1 && || ! ()
(pattern1 || pattern2) && (!pattern3)
3.2 pattern ? pattern : pattern (三目运算符)
3.3 特殊的组合 : pattern1,pattern2
pattern1,pattern2 {action}: 从 匹配pattern1的行(假设是row1)到匹配pattern2的行(假设是row2),
从row1到row2之间的所有行 都执行{Action}
NR==3,NR==5 {print} #打印第3行到第5行
三、Action详解
参见 http://www.aslibra.com/doc/awk.htm 的附录B
文档摘录:
- 大小: 9.4 KB
- 大小: 30.8 KB
- 大小: 17.6 KB
分享到:
相关推荐
awk详解awk详解awk详解awk详解awk详解awk详解awk详解awk详解awk详解
awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell
AWK命令详解 sed命令详解 AWK命令详解 sed命令详 AWK命令详解 sed命令详解解
awk命令详解大全,讲解详细,精心编排~带目录
awk命令各种用法详解,有案例 awk命令各种用法详解,有案例 awk命令各种用法详解,有案例
awk详解
AWK命令详解
linux awk 命令的基本用法,awk 命令详解,强大的awk
AWK用法详解(非常精辟) AWK用法详解(非常精辟)
Linuxawk命令详解[归类].pdf
awk 是一种程序语言. 它具有一般程序语言常见的功能. 因awk 语言具有某些特点, 如: 使用直译器(Interpreter)不需先行编译; 变量无类 型之分( Typeless), 可使用文字当数组的下标(Associative Array)...等特色. 因此,...
Linux awk 命令 AWK是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。 语法 awk [选项参数]...
本文档详细介绍linux命令,linux工具awk的使用,对初学者非常有帮助,希望读者能从该文档受益。
linu awk命令详解 对于喜欢linux学习的爱好者
本文档里面对于脚本语言awk,作了一个详细的介绍,里面有例子说明,可以供用户学习.
awk命令详解以及示例
精通awk命令 Unix awk使用手册.htm awk.pdf
超详细的Linux实战awk详解,轻松解决文本流问题,干货满满
linux grep sed awk命令的综合运用以及详解