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)的前或后增加我们想要添加的内容,若是双端测序,我们可以把一端放在第一行(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脚本
上一篇下一篇

猜你喜欢

热点阅读