在bash脚本中指定输入文件

时间:2013-05-07 15:17:31

标签: bash user-input bioinformatics fastq

我的问题是我正在编写的bash脚本。我需要为名为STAR的工具指定输入文件,这是一个用于生物信息学的对齐器。它有一个标志--readFilesIn。在我的情况下,这需要两组多个文件(fastq文件)逗号分隔,两组用空格分隔;输入看起来像:

STAR [OPTIONS] --readFilesIn fq_r1_1,fq_r1_2,fq_r1_3 fq_r2_1,fq_r2_2,fq_r2_3

因为每组fastq文件的编号和名称都有所不同,我想在下面使用,其中$ files是包含fastq文件的目录。

dir $files | cut -d " " -f 9 | sed 's/\s *//g' | grep _r1_ | paste -sd ","

这会生成正确的格式,但对齐器不接受输入。我已经尝试过写入文件并给予它,但这也不起作用。在这种情况下,bash的惯例是什么?

非常感谢,

布鲁斯。

如何让对准器接受这个。它想要它在我的第一个例子中。

1 个答案:

答案 0 :(得分:3)

以下是否有效?

group1=( fq_r1_* )
group2=( fq_r2_* )
( IFS=,; STAR [OPTIONS] --readFilesIn "${group1[*]}" "${group2[*]}" )

(在子shell中运行命令,以避免需要保留IFS)的当前值(如果有)。