awk常用功能--持续更新

1. awk命令实现文本内容行列转化

awk -F '\t' '{for(i=1;i<=NF;i=i+1){a[NR,i]=$i}}END{for(j=1;j<=NF;j++){str=a[1,j];for(i=2;i<=NR;i++){str=str "\t" a[i,j]}print str}}'  file> outfile

2. awk找出两个文件中相同的行

awk 'NR==FNR{a[$0]++} NR>FNR&&a[$0]' file1 file2 > same.txt

3. awk找出文件1在文件2没有的值

awk 'NR==FNR{a[$0]++} NR>FNR&&!a[$0]'  file1 file2 > lack.txt

4. 计算两列的和,然后求出和的比值

awk 'BEGIN{x=0;y=0}{x+=$3;y+=$4}END{print x/y}'  file

5. 绝对值

awk -F  '\t'  'function abs(x) {return ((x <0.0) ? -x : x)} {if (abs($9) < 500) print $0}'  

6. 批量做链接

ls  /share/path/ |awk '{print "ln-s /share/path/"$1" "$1" " }'

7. 截取字符串

awk '{print substr($0,0,5)}'  file

8. 拆分成数组,进而比较数组中的值

less -S file1 |awk -F '\t' '{split($8,m,"[/=]");split($9,n,"[/=]");if(m[2]>5&& m[3]>0.3 && n[2]>5){print $0}}' |less > out

9. 计算sam文件中每条reads的GC含量

samtools view  test.bam | awk '{ n=length($10); print $10, gsub(/[GCCgcs]/,"",$10)/n;}' > GC.file

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文:http://521cto.blog.51cto.com/950229/945683 利用awk自身变量NR...
    ibadplum阅读 1,860评论 0 2
  • 1、Nginx日志分析日志格式:'$remote_addr - $remote_user [$time_local...
    运维前线阅读 778评论 0 4
  • 本章主要学习内容awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 a...
    楠人帮阅读 1,312评论 0 8
  • centos7 常用命令管理centos服务器的时候常会对文件进行一些常规操作,除了ftp之外了解在ssh下必要的...
    小线亮亮阅读 1,220评论 0 2
  • 转载 原文的排版和内容都更加友好,并且详细,我只是在这里贴出了一部分留作自己以后参考和学习,如希望更详细了解AWK...
    XKirk阅读 3,306评论 2 25