zoukankan      html  css  js  c++  java
  • awk

    awk退出函数 exit

    awk中使用shell变量

    awk 'BEGIN{FS="	"; OFS="	"}{if($2 == "'$accession'"){print($2, $3); exit 0}}' nucl.accession2taxid.txt

    遍历 fastq_pass 目录中的所有以 fastq 结尾的文件,然后提取到后面的数字编号,然后对其进行 +10000 的算术运算后再输出。

    for i in `ls fastq_pass/*fastq`; do echo $i | awk 'BEGIN{FS="_"}{print $NF}' | awk 'BEGIN{FS="."}{print $1+10000}'; done

     以下代码实现了根据原文件名的编号来对应命名新文件名的功能

    1. 遍历源路径,获取源文件名

    2. 获取源文件中的数字编号,并进行一步数学运算,从而得到新文件的数字编号(这里为了演示采用了加法运算)

    3. 将源文件复制到新文件,注意是一一对应的复制

    for i in `ls fastq_pass/*fastq`
    do 
        newName=`echo $i | awk 'BEGIN{FS="_"}{print $NF}' | awk 'BEGIN{FS="."}{print $1+10000}'`
        cp $i /home/leon/test/fastq_$newName.fastq
    done

    源文件

    复制得到的新文件

    修改时间戳的命令

    for i in `ls fastq_*.fastq`; do num=`echo $i | awk 'BEGIN{FS="_"}{print $NF}' | awk 'BEGIN{FS="."}{print $1}'`; time=`head -n 1 $i | awk '{print $5}' | awk 'BEGIN{FS="="}{print $NF}'` ; touch -d "$time" $i; touch -d "$time" sequencing_summary_$num.txt; done
    遍历fastq文件 从fastq的文件命中获取文件编号 从fastq文件的第一行中获取时间 将文件的时间戳修改为从文件中获取的时间

     打印相邻几列的 awk 命令

    # 打印第四列到倒数第二列的内容
    awk 'BEGIN{FS="	"}{for (i=4;i<NF;i++) printf("%s ", $i); print ""}' fileName

    awk内置函数 gsub

    gsub(r,s) 在整个$0中用s替代r

    gsub(r,s,t) 在整个t中用s替代r

    # 当前记录通过正则表达式匹配 然后使用gsub()去掉@ 然后打印出第一个字段
    awk '$0~/^@w{8}-w{4}-w{4}-w{4}-w{12} runid=/ {gsub("^@", "", $1); print $1}' file.txt | less

     awk内置函数 sprintf

    awk 'BEGIN{n_seq=0} /^>/ {
      if(n_seq%4000==0){
        file=sprintf("split%d.fa", n_seq/4000);  # awk 内置函数
      } 
      print >> file; 
      n_seq++; 
      next; 
    }
    { 
      print >> file;
    }' < fileName.txt

     将fasta文件线性化

    awk '/^>/ {printf("%s%s	",(N>0?"
    ":""),$0);N++;next;} {printf("%s",$0);} END {printf("
    ");}' < input.fa
    cat Rmh.fasta | awk '{printf("%s%s",$0,((NR+1)%2==1?"
    ":"	"));}' | less -S
    curl -s  "ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.fasta.gz" | gunzip -c | awk '/^>/ {printf("%s%s	",(N>0?"
    ":""),$0);N++;next;} {printf("%s",$0);} END {printf("
    ");}'  | less -S
    cat input.fasta | paste - - | less -S

    将fastq文件线性化

    cat Rmh.fastq | awk '{printf("%s%s",$0,((NR+1)%4==1?"
    ":"	"));}' | less -S
    cat input.fastq | paste - - - - | less -S
  • 相关阅读:
    WCF 第十三章 可编程站点 为站点创建操作
    WCF 第十三章 可编程站点 所有都与URI相关
    WCF 第十二章 对等网 使用自定义绑定实现消息定向
    WCF 第十三章 可编程站点 使用WebOperationContext
    Using App.Config for user defined runtime parameters
    WCF 第十三章 可编程站点
    WCF 第十三章 可编程站点 使用AJAX和JSON进行网页编程
    WCF 第十二章 总结
    WCF 第十三章 可编程站点 使用WebGet和WebInvoke
    WCF 第十三章 可编程站点 URI和UriTemplates
  • 原文地址:https://www.cnblogs.com/0820LL/p/9728688.html
Copyright © 2011-2022 走看看