2016-07-12 29 views
1

我得到了包含符合以下两个模式,文件名列表:如何遍历包含两个不同的模式文件(Linux)(bash)的列表?

  • 一个像XXX_01.fastq
  • 另一个是XXX_01_001.fastq

,我会写一for环路(在bash中)以不同模式遍历所有文件名,我需要确定哪些符合上述模式。任何帮助吗?

+1

在哪种语言?到目前为止你做了什么?在shell脚本中使用 – pah

+0

。现在我已经创建了一个列表,其中包含文件名的所有后缀,例如xxx出数字。 –

+0

请参阅我在bash模式匹配答案中的示例。我认为这就是你要找的。 – pah

回答

0

LIST.TXT的内容:使用bash图案匹配

$ cat list.txt 
AAA_01.fastq 
AA_01_001.fastq 
BBB_01_002.fastq 
BBB_02.fastq 

实施例:

for file in `cat list.txt`; do 
    if [[ $file =~ [A-Z]{3}_[0-9]{2}\.fastq || $file =~ [A-Z]{3}_[0-9]{2}_[0-9]{3}\.fastq ]]; then 
    echo "MATCH $file"; 
    fi; 
done 

输出:

MATCH: AAA_01.fastq 
MATCH: BBB_01_002.fastq 
MATCH: BBB_02.fastq 
+0

实际上在我的名单中我只有名字才有AAA,BBB,AA。所以我想在最后匹配不同的后缀。一些文件有_01.fastq格式,其中一些有_01_001,_01_002格式 –