Shell 中的awk命令

来源:互联网 发布:查看ubuntu位数 编辑:程序博客网 时间:2024/06/14 00:53
在linux上有很多处理文字的信息,awk也是其中的一种,希望它能给你带来方便
awk执行时,其浏览域标记为$1,$2....$n。这种方法称为域标识。使用$1,$3标识参照第1和第3域,注意这里用逗号隔开做域分割,$0标识所有域。


1.保存awk的输出
第一种,最简单的方式是使用输出重定向符号 > 文件名,下面的例子重2.定向输出的文件wow
$ awk '{print $0}' mfile.txt > wow
第二种,使用tee命令,在输出到文件的同时输出到屏幕。例如输出重定向文件hello,同时输出到屏幕,使用这种方法,在awk 命令结尾写入 |tee hello
3.打印报告头
输出域名之间用一些空格使之更容易划分,也可以在域间使用 tab 键加以划分。加入tab键,使用tab键速记引用符\t,后面讲对速记引用加以详细的讨论。也可以输出文件加入信息头。打印信息头放置在BEGIN模式部分,因为打印信息头被界定为一个动作,必须用大括号扩起来,在awk查看第一条记录前,信息头被打印。
例如:
$ awk 'BEGIN { print "NAME\tBel\n----------------------------------------------------------------"} {print $1"\t" $4}' myfile.txt
4.打印信息尾
如果在末行加入end of report信息,可使用END语句。END语句在所有文本处理动作执行完后才执行。END语句在脚本中的位置放置在主要动作之后。下面简单打印头信息并告知查询动作完成。
$ awk 'BEGIN {PRINT "Name\n--------"} {print $1} END {"EDN-OF-REPORT}’ myfile.txt
5.awk错误提示
几乎可以肯定,在使用awk时,将会在命令中碰到一些错误。awk将试图打印错误行,但由于大部分命令都只在一行,以此帮助不大。
第一次使用awk时,可能被错误信息搅得不知所措,但通过长时间和不断的学习,可总结以下规则,在碰到awk错误时,可相应的查找:
1.确保整个awk命令用单引号扩起来。
2.确保命令内存所有引号成对出现。
3.确保用花括号括起来动作语句,用圆括号括起条件语句。
4.可能忘记使用花括号,也许你认为没有必要,但awk不这样认为,将按之解释语法。
6.正则表达式
awk 比grep多两个元字符‘+’,‘?’,
+ 使用+匹配一个或多个字符。
? 匹配模式出现频率,例如使用/XY?Z/匹配XYZ或YZ。
awk 条件操作符
<  小于      >= 大于等于
<= 小于等于  ~ 匹配正则表达式
== 等于     !~ 不匹配正则表达式
!= 不相等
0 0
原创粉丝点击