我的问题是我正在编写的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的惯例是什么?
非常感谢,
布鲁斯。
如何让对准器接受这个。它想要它在我的第一个例子中。
答案 0 :(得分:3)
以下是否有效?
group1=( fq_r1_* )
group2=( fq_r2_* )
( IFS=,; STAR [OPTIONS] --readFilesIn "${group1[*]}" "${group2[*]}" )
(在子shell中运行命令,以避免需要保留IFS
)的当前值(如果有)。