首先,这是我在这里的第一个问题,我刚刚注册,我是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所以我想要做的是,对于文件的每一行,使用第一个和第二个字段来构成上面代码的最后部分,使用文件的第三个和第四个字段作为代码的中间部分。
awk '{print $1$2".sam"}' fqfiles
awk '{print -1, $3, -2, $4}' fqfiles我可以像这样得到这些部分,但我只是很难让它成为一个循环,它将接受第一行,获取第一行的字段,将其放入代码中,运行它,然后重新开始下一行,等等。
有没有人能帮我写这个循环,或者建议我该怎么做?
发布于 2020-10-20 03:53:20
使用read逐行读取文件:
while read -r n s f1 f2 ; do
bowtie2 -x Trypanosoma_brucei_brucei -1 "$f1" -2 "$f2" -S "$n$s"
done < filehttps://stackoverflow.com/questions/64434073
复制相似问题