没有合适的资源?快使用搜索试试~ 我知道了~
awk学习笔记
需积分: 10 3 下载量 56 浏览量
2011-09-13
13:26:03
上传
评论
收藏 176KB DOC 举报
温馨提示
试读
17页
awk工具的使用详解。SHELL编程的必备手册。
资源推荐
资源详情
资源评论
Awk 学习笔记
转自:http://www.linux.gov.cn/shell/awk.htm#id2808705
1.awk 简介
是一种编程语言,用于在 下对文本和数据进行处理。数据可以来自标准输入、一个或多个
文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是 下的一个
强大编程工具。它在命令行中使用,但更多是作为脚本来使用。 的处理文本和数据的方式是这样的,
它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果
没有指定处理动作,则把匹配的行显示到标准输出 屏幕,如果没有指定模式,则所有被操作所指定的行
都被处理。 分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是 、
、。 是 的 版本,它提供了 实验室和 的一些扩
展。下面介绍的 是以 的 为例的,在 系统中已把 链接到 ,所以下面全部
以 进行介绍。
2.awk 命令格式和选项
2.1.awk 的语法有两种形式
!" #"$%$&
!' #&$%$&
2.2.命令选项
'( ''&'
指定输入文件折分隔符, 是一个字符串或者是一个正则表达式,如'()。
'$$%$'' $%$
赋值一个用户定义变量。
' #&''& #&
从脚本文件中读取 命令。
'*'*
对 值设置内在限制,'* 选项限制分配给 的最大块数目;'* 选项限制记录的最大数
目。这两个功能是 实验室版 的扩展功能,在标准 中不适用。
'#*#''#*+'''
在兼容模式下运行 。所以 的行为和标准的 完全一样,所有的 扩展都被忽
略。
'#,''#,+'#,''#,
打印简短的版权信息。
'''+' ''
打印全部 选项和每个选项的简短说明。
'''
打印不能向传统 平台移植的结构的警告。
'''''
打印关于不能向传统 平台移植的结构的警告。
'
打开兼容模式。但有以下限制,不识别:-、函数关键字、#、换码序列以及当 是一个空
格时,将新行作为一个域分隔符;操作符..和..%不能代替/和/%;0 无效。
''$'''$
允许间隔正则表达式的使用,参考 中的 字符类,如括号表达式))!!。
' #*''' #*'
使用 *' 作为源代码,可与' 命令混用。
'$ ''$
打印 报告信息的版本。
3.模式和操作
脚本是由模式和操作组成的:
1#2如3"" ,或3"345677" 。
两者是可选的,如果没有模式,则 # 应用到全部记录,如果没有 #,则输出匹配全部记录。默认
情况下,每一个输入行都是一条记录,但用户可通过 89 变量指定不同的分隔符进行分隔。
3.1.模式
模式可以是以下任意一个:
正则表达式:使用通配符的扩展集。
关系表达式:可以用下面运算符表中的关系运算符进行操作,可以是字符串或数字的比较,如
3:;<6 选择第二个字段比第一个字段长的行。
模式匹配表达式:用运算符=匹配和=>不匹配。
模式,模式:指定一个行的范围。该语法不能包括 ?@ 和 ?A 模式。
?@:让用户指定在第一条输入记录被处理之前所发生的动作,通常可在这里设置全局变量。
?A:让用户在最后一条输入记录被读取之后发生的动作。
3.2.操作
操作由一人或多个命令、函数、表达式组成,之间由换行符或分号隔开,并位于大括号内。主要有四部份:
变量或数组赋值
输出命令
内置函数
控制流命令
4.awk 的环境变量
Table1.awk 的环境变量
变量 描述
3
当前记录的第 个字段,字段间由 (9 分隔。
37
完整的输入记录。
8B
命令行参数的数目。
8@A
命令行中当前文件的位置从 7 开始算。
8C
包含命令行参数的数组。
BDC(EF
数字转换格式默认值为<GH
?C@8D
环境变量关联数组。
?88D
最后一个系统错误的描述。
变量 描述
(@?IA@AFJ9
字段宽度列表用空格键分隔。
(@I?E?
当前文件名。
(8
同 8,但相对于当前文件。
(9
字段分隔符默认是任何空格。
@D8?B9?
如果为真,则进行忽略大小写的匹配。
(
当前记录中的字段数。
8
当前记录数。
D(EF
数字的输出格式默认值是<GH。
D(9
输出字段分隔符默认值是一个空格。
D89
输出记录分隔符默认值是一个换行符。
8I?FJ
由 *# 函数所匹配的字符串的长度。
89
记录分隔符默认是一个换行符。
89F8F
由 *# 函数所匹配的字符串的第一个位置。
99?
数组下标分隔符默认值是-74K。
5.awk 运算符
Table2.运算符
运算符 描述
%L%'%.%%<%/%..%
赋值
M)
B 条件表达式
NN
逻辑或
OO
逻辑与
==>
匹配正则表达式和不匹配正则表达式
55%;;%>%%%
关系运算符
空格 连接
L'
加,减
.O
乘,除与求余
L'>
一元加,减和逻辑非
/...
求幂
LL''
增加或减少,作为前缀或后缀
3
字段引用
剩余16页未读,继续阅读
资源评论
云梦谭
- 粉丝: 2186
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功