1

我的问题是我正在编写的 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 的约定是什么?

提前谢谢了,

布鲁斯。

我怎样才能让矫正器接受这一点。它想要它,就像我的第一个例子一样。

4

1 回答 1

3

下面的工作吗?

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

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

于 2013-05-07T15:23:46.960 回答