我在我的脚本中使用以下正则表达式来读取以_L001_R1_001.fastq或_L001_R2_001.fastq
类型结尾的文件如果是R1,则应将其读入readPair_1,如果R2应该读入readPair_2,但它不匹配任何内容。
任何人都可以告诉我这里有什么问题吗?
我的剧本:
#! /bin/bash -l
Proj_Dir="${se_ProjDir}/*.fastq"
for Dir in $Proj_Dir
do
if [[ "$Dir" =~ _L.*_R1_001.fastq]]
then
readPair_1=$Dir
echo $readPair_1
fi
if [[ "$Dir" =~ _L.*_R2_001.fastq]]
then
readPair_2=$Dir
echo $readPair_2
fi
文件:
Next-ID-1-MN-SM5144-170509-ABC_S1_L001_R1_001.fastq
Next-ID-1-MN-SM5144-170509-ABC_S1_L001_R2_001.fastq
Next-ID-1-MN-SM5144-170509-ABC_S2_L001_R1_001.fastq
Next-ID-1-MN-SM5144-170509-ABC_S2_L001_R2_001.fastq
Next-ID-1-MN-SM5144-170509-ABC_S3_L001_R1_001.fastq
Next-ID-1-MN-SM5144-170509-ABC_S3_L001_R2_001.fastq
答案 0 :(得分:1)
您的模式结尾需要.gz
。您根本没有收到任何文件:
Proj_Dir="${se_ProjDir}/*.fastq.gz"
]]
之前还需要空格:
if [[ "$Dir" =~ _L.*_R1_001.fastq ]]
和
if [[ "$Dir" =~ _L.*_R1_002.fastq ]]
答案 1 :(得分:0)
尝试:
L001_R[12]_001\.fastq\.gz$
这将查找R1或R2文件,并确保文件名字符串的结束方式。
答案 2 :(得分:0)
=〜运算符的正则表达式必须与整个字符串匹配。因此,您应该在if语句中修改正则表达式,如下所示:.*_L.*_R1_001.fastq
和.*_L.*_R2_001.fastq
。