微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试创建一个循环访问列表的循环,并将该列表中的某些字段用作我的bowtie2命令的一部分

如何解决尝试创建一个循环访问列表的循环,并将该列表中的某些字段用作我的bowtie2命令的一部分

首先,这是我的第一个问题,我刚刚报名参加,我是unix的新手,所以如果做错了事,请原谅。

好吧,我有一个名为fqfiles的文件

216     Slender 216_L8_1.fq.gz  216_L8_2.fq.gz
222     Stumpy  222_L8_1.fq.gz  222_L8_2.fq.gz
218     Slender 218_L8_1.fq.gz  218_L8_2.fq.gz
220     Stumpy  220_L8_1.fq.gz  220_L8_2.fq.gz
221     Stumpy  221_L8_1.fq.gz  221_L8_2.fq.gz
219     Slender 219_L8_1.fq.gz  219_L8_2.fq.gz

我需要为每个命令运行bowtie2命令,其语法为;

bowtie2 -x Trypanosoma_brucei_brucei -1 216_L8_1.fq.gz -2 216_L8_2.fq.gz -S 216Slender.sam

所以我想做的是;对于该文件的每一行,请使用第一个字段和第二个字段构成上面代码的最后一部分,并使用文件的第3个和第4个字段作为代码的中间部分。

awk '{print $1$2".sam"}' fqfiles
awk '{print -1,$3,-2,$4}' fqfiles

我可以得到这些部分,但是我很难使它成为一个循环,该循环将采用第一行,采用第一行的字段,将其放入代码中,运行它,然后重新开始用于下一行等。

有人可以帮我写这个循环,还是建议我应该怎么做?

解决方法

使用read逐行读取文件:

while read -r n s f1 f2 ; do
    bowtie2 -x Trypanosoma_brucei_brucei -1 "$f1" -2 "$f2" -S "$n$s"
done < file

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。