awk命令批量生成运行命令
2023-05-03 本文已影响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),一端放在第二行($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脚本