- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AWK用法详解.pdf
AWK
awk 是一种程序语言. 它具有一般程序语言常见的功能.
因awk语言具有某些特点, 如 : 使用直译器(Interpreter)不需先行编译; 变量无类
型之分(Typeless), 可使用文字当数组的下标(Associative Array)...等特色. 因此,
使用awk撰写程序比起使用其它语言更简洁便利且节省时间. awk还具有一些
内建功能, 使得awk擅于处理具数据行(Record), 字段(Field)型态的资料; 此外,
awk内建有pipe的功能, 可将处理中的数据传送给外部的 Shell命令加以处理, 再
将Shell命令处理后的数据传回awk程序, 这个特点也使得awk程序很容易使用
系统资源.
由于awk具有上述特色, 在问题处理的过程中, 可轻易使用awk来撰写一些小工
具; 这些小工具并非用来解决整个大问题,它们只扮演解决个别问题过程的某
些角色, 可藉由Shell所提供的pipe将数据按需要传送给不同的小工具进行处理,
以解决整个大问题.
模式和动作
单引号 输入文件
任何a w k语句都由模式和动作组成。
模式可以是任何条件语句或复合语句或正则表达式。模式包括两个特殊字
段B E G I N和E N D。动作即对数据的操作 如打印、计算等
提示符
域和记录 模式 动作
a w k执行时,其浏览域标记为$ 1,$ 2 . . . $ n。这种方法称为域标识。$0代
表整条记录。
记录
域
调用awk
第一种是命令行方式:
awk 【-F filed-separator】 ‘commands’ input-files
awk ‘BEGIN{print “Good afternoon ”} {total += $1} END{print
total}’ input-file
第二种方法是将所有a w k命令插入一个文件,并使a w k程序
可执行,然后用a w k命令解释器作为脚本的首行,以便通过
键入脚本名称来调用它。
chmod u+x print.awk
./print.awk input-file
第三种方式是将所有的a w k命令插入一个单独文件,然后调
用:
awk –f print.awk input-file
保存a w k输出
有两种方式保存s h e l l提示符下a w k脚本的输出。
A、使用输出重定向符号文件名,下面的例子重定向输出到文件,使
用这种方法要注意,显示屏上不会显示输出结果。
awk ‘{print $0}’ chr10.snp chr10.newsnp
B、第二种方法是使用t e e命令,在输出到文件的同时输出到屏幕。
awk ‘{print $0}’ chr10.snp | tee chr10.newsnp
常见应用
打印所有记录和打印指定域
awk ‘{print $0}’ example.txt awk ‘{print $1,$4}’ example.txt
$1 $4
打印报告头和信息尾
awk BEGIN{print chr\tpos\tbase\tnum\tp-value} /chrX/ {print}
END{print end of the data} example.txt 报告头
信息尾
BEGIN和END
BEGIN和END部分在awk中都仅执行一次且有各自的用途
如BEGIN用在程序一开始时, 改变awk切割字段的方式、程序一开始时, 改
变awk分隔数据行的方式、设定变量的起始值、印出一行
文档评论(0)