2016-07-12 2 views
1

私は、次の2つのパターンに一致するファイル名を含むリストを得た:linux(bash)で2つの異なるパターンファイルを含むリストをループする方法は?

  • 1はXXX_01.fastq
  • よう
  • 別では(私はforループを記述するつもりですXXX_01_001.fastq

ですbashで)異なるパターンですべてのファイル名をループし、どのパターンが上記のパターンと一致するかを判断する必要があります。それについての助け? list.txtにの

+1

言語?これまで何をしていますか?シェルスクリプトの – pah

+0

今、私はリストを作りました。その内容には、ファイル名の接尾辞がすべて含まれています。 xxxに数字を入れてください。 –

+0

私の答えの例をbashパターンマッチングで見てください。私はそれがあなたが探しているものだと思います。 – pah

答えて

0

内容:

$ 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 
+0

実際に私のリストには名前だけがAAA、BBB、AAのようにしかありません。だから私は最後に別の接尾辞をマッチさせたい。ファイルの中には_01.fastq形式のものもあれば、_01_001、_01_002形式のものもあります –

関連する問題