awk 探秘( 一)
2013-09-06 11:26
134 查看
AWK是一种模式扫描和处理语言,它搜索一个活多个文件,以查看这些文件中是否存在匹配指定模式的记录。使用AWK可以生成报告或者过滤文本。它在处理时不区分数字和文本,如果将两者混合在一起,AWK通常可以得出正确的答案。1.语法:gawk[options] [program] [file-list]gawk[options] -f program-file [file-list]2.语言基础:gawk程序(来自命令或者程序文件中的程序)由一行或者多行文本构成,其中包含一个模式(pattern)和/或动作(action),格式如下: pattern {action}2.1 模式(pattern) ~ 和 !~ 用斜杠把正则表达式扣起来,就可以将其看做模式。“~”运算符用于测试某个字段或者变量是否匹配正则表达式。" !~ "运算符用于测试不匹配。可以使用布尔运算||(OR) 或者&&(AND)来组合任何模式。例:gawk '/volvo/ ' carsgawk '2000 <= $5 && $5<9000' cars BEGIN和END BEGIN和END是两种独特的模式,分别执行在gawk开始处理输入信息之前和处理完毕输入之后的命令。例:gawk 'BEGIN {FS=":"} $3 < 10 {print $1 "\t " $3}' /etc/passwdgawk 'END {print NR, "/etc/passwd print."} ' /etc/passwd
,(逗号) 逗号是范围运算符例:gawk '/volvo/ , /bmw/ ' carsgawk 'NR == 2 , NR == 4' cars2.2 动作(action) 如果gawk匹配某种模式,它就执行gawk命令的动作部分所指定的动作。如果没有指定动作,默认print命令,这个动作将记录从输入复制到标准输出。 如果print命令后面带有参数,gawk就只能显示用户指定的参数。这些参数可以是变量或者字符串常量。可以将print命令的输出发送到文件(>),追加到文件(>>)或者通过管道将其发送给另一个程序的输入(|)。 除非用逗号将print命令中的各项分开,否则gawk将它们连接起来。逗号使得gawk用输出字段分隔符(OFS,通常是空格)将各项分隔开。 用分号将多个动作隔开,可以在同一行上使用多个动作。3.变量
例:
last -n 5 | awk '{ print $1 "\t lines: " NR "\t columes: " NF}'
,(逗号) 逗号是范围运算符例:gawk '/volvo/ , /bmw/ ' carsgawk 'NR == 2 , NR == 4' cars2.2 动作(action) 如果gawk匹配某种模式,它就执行gawk命令的动作部分所指定的动作。如果没有指定动作,默认print命令,这个动作将记录从输入复制到标准输出。 如果print命令后面带有参数,gawk就只能显示用户指定的参数。这些参数可以是变量或者字符串常量。可以将print命令的输出发送到文件(>),追加到文件(>>)或者通过管道将其发送给另一个程序的输入(|)。 除非用逗号将print命令中的各项分开,否则gawk将它们连接起来。逗号使得gawk用输出字段分隔符(OFS,通常是空格)将各项分隔开。 用分号将多个动作隔开,可以在同一行上使用多个动作。3.变量
变量 | 含义 |
$0 | 当前记录 |
$1~$n | 当前记录中的字段 |
FS | 输入字段分隔符 |
NF | 当前记录的字段数目 |
NR | 当前记录的记录编码 |
OFS | 输出字段分隔符(默认为空格) |
last -n 5 | awk '{ print $1 "\t lines: " NR "\t columes: " NF}'
相关文章推荐
- 每天一个shell脚本之for&awk&less-2
- SpringBoot 中 @SpringBootApplication注解背后的三体结构探秘
- awk与sed:一个关于多行处理的例子
- Day 34 awk数组
- awk学习笔记-4
- awk基础03-分支和循环语句
- awk:Nagios流量监控插件
- awk -F "[ :]+"
- shell学习6--awk的编程结构--变量
- AWK
- 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
- Linux文本过滤命令grep|awk|sed小结
- "陷阱"技术探秘 ----动态汉化Windows技术的分析
- awk工具
- 探秘“哈马斯”
- Awk 实例,第 3 部分
- Awk 实例,第 1 部分
- 互联网世界的“人工智能”——探秘“深度学习”的前世今生
- [收藏] 正则表达式的入门与应用,1~4篇!grep/sed/perl/awk
- JavaScript探秘:强大的原型和原型链