美文网首页
awk命令批量生成运行命令

awk命令批量生成运行命令

作者: 路人里的路人 | 来源:发表于2023-05-03 18:23 被阅读0次

    基本命令

    awk '{print $1}' name.lst
    #表示打印name.lst这个文件中的第一行
    

    使用实例

    1.目标

    现在我们有一个SRR2176358_1.fq.gz;SRR2176359_1.fq.gz;SRR2176360_1.fq.gz;SRR2176361_1.fq.gz;SRR2176362_1.fq.gz;SRR2176363_1.fq.gz;SRR2176364_1.fq.gz
    SRR2176365_1.fq.gz;SRR2176366_1.fq.gz;SRR2176367_1.fq.gz;SRR2176368_1.fq.gz
    SRR2176369_1.fq.gz;SRR2176370_1.fq.gz;SRR2176371_1.fq.gz;SRR2176372_1.fq.gz;SRR2176373_1.fq.gz;SRR2176374_1.fq.gz;SRR2176375_1.fq.gz;SRR2176376_1.fq.gz
    SRR2176377_1.fq.gz;SRR2176378_1.fq.gz;SRR2176379_1.fq.gz;SRR2176380_1.fq.gz
    SRR2176381_1.fq.gz这么多个数据需要使用fastp进行质控,如果一个个的跑太麻烦,毕竟一个要跑300多秒。所以考虑使用awk命令批量生成运行命令

    2.步骤

    第一步 生成name.lst

    ls *.gz > name.lst
    #将所有以.gz结尾的文件的文件名打印到一个叫name.lst的文档中
    

    第二步 awk命令生成

    awk '{print "fastp -i "$1" -o /filtered/"$1" -h "$1".html"}' name.lst
    #针对单端测序徐,使用fastp的基本命令如上,生成后可以预览一下命令有没有错误。
    

    我们可以通过" "在(1)的前或后增加我们想要添加的内容,若是双端测序,我们可以把一端放在第一行(1),一端放在第二行($2)。然后通过fastp的双端质控命令完成操作。
    第三步 并行进程加速运行

    awk '{print "fastp -i "$1" -o /filtered/"$1" -h "$1".html &"}' name.lst
    

    第四步 将命令写入shell脚本

    awk '{print "fastp -i "$1" -o /filtered/"$1" -h "$1".html &"}' name.lst > fastp_genek.sh
    

    第五步 运行

    nohup sh fastp_genek.sh
    #后台运行shell脚本
    

    相关文章

      网友评论

          本文标题:awk命令批量生成运行命令

          本文链接:https://www.haomeiwen.com/subject/arjtsdtx.html