Footsteps on my way !
perl/linux/测序分析

awk学习笔记

先记录下自己常用的awk命令,以后在同统一整理,如您早以饥渴难耐,系统学习可转到 http://man.lupaworld.com/content/manage/ringkee/awk.htm

对某个字段进行正则匹配:使用“ ~ ”,而不是perl中的“ =~ ”

awk -F ‘\t’ ‘$9~/^PE /{print $8}’ NC_000962.ptt | wc -l  #若第9个字段匹配以“PE ”开头(注意PE后面有个空格),则取出对应的第八个字段

awk ‘BEGIN{total=0} {total=total+length($10)} END{print total}’ H37Rv-MV.mapped.mapq30.sam #计算第10字段长度的总和

设置默认输入输出域(字段)分隔符: BEGIN模块后紧跟着动作块,这个动作块在awk处理任何输入文件之前执行。所以它可以在没有任何输入的情况下进行测试。它通常用来改变内建变量的值,如OFS,RS和FS等,以及打印标题。如:$ awk ‘BEGIN{FS=”:”; OFS=”\t”; ORS=”\n\n”}{print $1,$2,$3} test。上式表示,在处理输入文件以前,域分隔符(FS)被设为冒号,输出文件分隔符(OFS)被设置为制表符,输出记录分隔符(ORS)被设置为两个换行符。$ awk ‘BEGIN{print “TITLE TEST”}只打印标题

使用多个域(字段)分隔符: 可以同时使用多个域分隔符,这时应该把分隔符写成放到方括号中,如$awk -F'[:\t]’ ‘{print $1,$3}’ test,表示以空格、冒号和tab作为分隔符。

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址