如何在linux(bash)中循环包含两个不同模式文件的列表?

时间:2016-07-12 01:59:17

标签: linux bash

我得到的列表包含与以下两种模式匹配的文件名:

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

我将编写一个for循环(在bash中)循环所有具有不同模式的文件名,我需要确定哪些与上面的模式匹配。有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

list.txt的内容:

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

使用bash模式匹配的示例:

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