• 2、awk的输出


    1、常见的输出格式整理

    awk '{print "this is " $1, $2, $1*$2, NR, NF, $NF}' file1   ###字符输出,字段输出,运算输出,内置变量输出等,默认空格分开;$1 ,$2调换顺序打印随之变化

    awk 'BEGIN{FS=OFS=" "} {print $1,$2 }' file2  ###读入字段分割,输出字段分割

     awk -F '[ : |]' '{print $1}' file          ##可以有多个分割符

    awk  {printf ("this is %d %.2f %s %s %s ",NR,NF,$1,$2,$NF)}'  file3 ###printf( )不自动换行;%d ,%.2f, %s;字段分割也可以指定

    awk '{$2="";print }' file  ##不打印第二列

    2、选择

    数字选择:awk '$2 > 10{print}' file    ###+   -  *   /    %  ^ ; >=   <=   !=   ==  ; ~    !~   /gene/ || /mNA/

    字符选择 :awk ‘$2 == "gene" {print}’ file 

        awk '/mRNA/{match($9,/ID=(.*);P/,a);printf "%s %s %d %d ",$1,a[1],$4,$5}' Chr_genome_final_gene.gff3  ##生成circos的gff文件

        awk '{gsub(/gene/,"gene_id",$3);print}' Chr_genome_final_gene.gff3|less          ##替换处理

    正则匹配:awk ‘ /gene/ {print}’ file   ###^   $   .   []    | () * + ?

    组合选择:&& || ! 和and  or not

          awk ‘$2 >=10 && $3<=20 {print}’ file

    文本处理开始于结束BEGIN{} END{}

    3、计算

    数字计算:awk '{a+=2}END{print a}' file      

    字符串联:awk '{a = a " " $1} END{print a}' file   或者  awk '{a = a $1 " "} END{print a}' file

    总行以及最后一行:awk '{last = $0}END{print NR, last}' file     

    内建函数:length($0)          ##$0不包含换行符

    每一行所有字段和:awk '{ sum = 0; for( i = 4; i <= 5; i++){printf("%d " , $i); sum += $i };print sum }'    ##打印4,5列,计算每行的4到5列的和

    所有行字段和:awk '{ for( i = 4; i <= 5; i++){ sum+=$i }}END{ print sum }'

    4、流程控制语句

    if() print else print

    while(){}

    for (i=0; i<=5;i++){}

    for (i  in  a) {}

    next  ; break

    4、数组

    awk '{a[NR] = $0} END{ for(i = 1;i <= NR;i++)print a[i]}' file

    5、常用内建字符串函数

    index(r , t)    match(s , r ,arr)   sprintf   split(s ,arr, fs)   gsub(r ,s, tar)   substr(s, star, len)        

  • 相关阅读:
    面向对象初识,类名称空间,对象名称空间
    python内置函数二
    生成器、列表推导式、生成器表达式
    python内置函数一
    Error response from daemon: rpc error: code = AlreadyExists desc = name conflicts with an existing object: service myweb already exists
    centos7单机安装kafka
    一个自动化框架demo
    浅谈自动化测试
    测试的个人想法
    电子课堂6:ChangeLog-2.19
  • 原文地址:https://www.cnblogs.com/renping/p/10092142.html
Copyright © 2020-2023  润新知