没有合适的资源?快使用搜索试试~ 我知道了~
awk用法小结--有关awk的材料
5星 · 超过95%的资源 需积分: 34 36 下载量 45 浏览量
2009-06-22
21:52:24
上传
评论
收藏 98KB PDF 举报
温馨提示
试读
7页
awk用法小结 - - - by ruson 2006.4 NTU 1. awk非常适合于结构化的文本文件(行、列数据)复杂处理。相对于sed而言,它可进行复杂的编程处理,并且可以产生复杂的报表输出。 2. awk通常有三个版本,旧awk、nawk(新)、gawk。Solaris下建议用nawk,因为旧awk有很多功能不支持,例如数学运算幂 ^ ,函数getline,system等。 总结的很有条理。
资源推荐
资源详情
资源评论
awk 用法小结 - - - by ruson 2006.4 NTU
1. awk 非常适合于结构化的文本文件(行、列数据)复杂处理。相对于 sed 而言,它可进
行复杂的编程处理,并且可以产生复杂的报表输出。
2. awk 通常有三个版本,旧 awk、nawk(新)、gawk。Solaris 下建议用 nawk,因为旧 awk
有很多功能不支持,例如数学运算幂 ^ ,函数 getline,system 等。
3. 基本语法:awk ‘pattern{action}’ filename
其中 action 内容可扩充,也可以有多个 action。
执行顺序:awk 一行行读入输入文件,顺序执行‘’内内容,按模式匹配来采取动作。
其他调用:awk 可用内部变量和函数,条件与循环语句,也可执行数学运算和字符串操
作。此外,可以使用 BEGIN 和 END 来执行处理前预操作和处理后后继操作。
A. 常用内部变量:NR(当前行数)NF(字段总数)$0(当前整行)$1(第一个记录)
FS(字段分隔符)OFS(输出字段分隔符)ORS(输出记录分隔符)
B.模式 pattern 可以是/ /包含的匹配形式,也是条件语句如$3<10
C.BEGIN(处理文件前的 action,常包含 FS、OFS 等)、END(处理文件后的 action)
D.条件与循环:if else(next,exit),for do while (continue,break)
E.数学运算符 + - * / % ^;数学函数 sin int;字符串函数 length index gsub substr 等
F.数组与关联数组:a[1]; a[$1]; a[$0]; a[b[i]]
F.输出重定向和管道:> >> | ;awk 内部命令:getline、system 等
4
.awk 的三种调用方式: X awk ‘pattern{action}’ filename1,filename2
Y awk –f myscript.awk filename1,filename2
Z #!/bin/nawk –f … … 执行:myscript.awk filename
特别注意事项:
----------------------------------------------------------------------------------------------------------------------
A.从 window 拷贝语法句到 Unix 中,行结尾可能有不识别的字符会导致语法错误
B.写 script 文件时,BEGIN 或 END 后必须紧跟{
C.所有 action 语句必须放在{ }中,否则提示语法错误。例如不可直接写 print
D.单独的赋值或 pattern 条件句没有{ }则默认 print $0;例如{ }外面的 i=1
E.if 条件块必须放在 action 中,也就是必须要有{ }来包含
F.条件的判断“相等”须用= =,而不是=(赋值);例如,if($1= =100)
G.输出多列须用“,”(逗号)隔开;for 循环中间隔符为“;”而不是“,”
实例演练:(filename 为以下文件,注意:第二列用“-”隔开而非空格,以避免与 FS 冲突)
ID Name Age City Country Tel Salary Children
1001 Steven 25 NY U.S.A +01-02-323222 $4900 2
1002 Huang-Yu 30 BJ CHN +86-10-36789966 ¥6000 1
1003 Fish-Mad 27 SG SG +65-67456632 $3000 3
1004 Vale-Kiss 46 LD ENG +44-20-87634321 $6280 3
----------------------------------------------------------------------------------------------------------------------
以下分基础实例:1.无 pattern 的 action 实例 2.有 pattern 的 action 实例
3.BEGIN,END,FS,OFS 实例 4.if else; for while 循环实例
5.数学运算与字符串操作实例
高级实例:6.数组与关联数组运用实例 7.多文件运用 NR FNR 实例
8.输出重定向和 getline 实例
1
资源评论
- sky5189102013-11-13很好很实用,受教了。
Schurikeen
- 粉丝: 3
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功