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
  • 相关阅读:
    Oracle数据库编程
    使用JDBC处理MySQL大文本和大数据
    phpcms之带图片的登录信息(带cookie版)(由于cookie和PHPCMS的原因,这个暂时无法使用,看新的)
    phpcms之调用导航栏
    phpcms之修改默认显示文字
    phpcms之创建自己的路径
    dedecms 动态tab写法
    关于dedecms的操作
    12/23
    12/21
  • 原文地址:https://www.cnblogs.com/0820LL/p/9728688.html
Copyright © 2011-2022 走看看