首页 > 其他 > 详细

(3)awk命令行结构和语法结构

时间:2020-03-01 13:14:47      阅读:59      评论:0      收藏:0      [点我收藏+]

awk命令行结构和语法结构

awk命令行结构

awk [ -- ] program-text file ...        (1)
awk -f program-file [ -- ] file ...     (2)
awk -e program-text [ -- ] file ...     (3)

其中

program-text即awk命令行中awk代码部分,一般使用单引号包围。
-f program-file表示awk代码部分写在文件中,然后使用-f选项去引用这个文件。
-e program-text也表示使用awk代码块,所有语法1和语法3基本是等价的,但是如果使用-f,又要在代码行中写awk代码,则必须使用-f和-e,即awk -f file -e awk-code,而不能是awk -f file awk-code

awk语法结构

awk语法结构即awk代码部分的结构。

awk的语法充斥着pattern{action}的模式,它们称为awk rule。

关于awk的语法:

多个pattern{action}可以直接连接连用
action中多个语句如果写在同一行,则需使用分号分隔
pattern部分用于筛选行,action表示在筛选通过后执行的操作
pattern和action都可以省略
省略pattern,等价于对每一行数据都执行action
例如:awk {print $0} a.txt
省略代码块{action},等价于{print}即输出所有行
例如:awk /Alice/ a.txt等价于awk /Alice/{print $0} a.txt
省略代码块中的action,表示对筛选的行什么都不做
例如:awk /Alice/{} a.txt
pattern{action}任何一部分都可以省略
例如:awk ‘‘ a.txt

pattern和action

对于pattern{action}语句结构(都称之为语句块),其中的pattern部分可以使用下面列出的模式:

# 特殊pattern
BEGIN
END

# 布尔代码块
/regular expression/    # 正则匹配成功与否 /a.*ef/{action}
relational expression   # 即等值比较、大小比较 3>2{action}
pattern && pattern      # 逻辑与 3>2 && 3>1 {action}
pattern || pattern      # 逻辑或 3>2 || 3<1 {action}
! pattern               # 逻辑取反 !/a.*ef/{action}
(pattern)               # 改变优先级
pattern ? pattern : pattern  # 三目运算符决定的布尔值

# 范围pattern,非布尔代码块
pattern1, pattern2      # 范围,pat1打开、pat2关闭,即flip,flop模式

 

(3)awk命令行结构和语法结构

原文:https://www.cnblogs.com/liujunjun/p/12389097.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!