如何在bash脚本中对多个文件进行排序和使用?

时间:2013-02-20 04:38:28

标签: bash pattern-matching filenames

我有多对文件,只有一个数字不同:

121_S11_L001_R1_001

121_S11_L001_R2_001

和另一对相对于其他文件,有多个不同的数字,但相对于它的一对,再次只有一个数字:

120_S10_L001_R1_001

120_S10_L001_R2_001

我有一个bash脚本来单独处理这些文件:

if [-s $ infile]&& [! -s $ infile.bwa];然后

echo "Creating BWA file..."
time bwa aln $path"Genomeidx" $infile > $infile.bwa
time bwa aln $path"Genomeidx" $infile2 > $infile2.bwa

其中'infile'和'infile2'是命令行中指定的文件

我不是手动输入每一对,而是如何递归选择和处理每一对的每个文件?

1 个答案:

答案 0 :(得分:2)

您可以使用bash globbing挑选出所有_R1_样式文件,然后找到它们的对。

这样的事情可以适应你的处理:

#!/bin/bash

for file in *_R1_*; do
    pair=${file/_R1_/_R2_}
    if [ -f "$pair" ]; then
        echo "processing $file and its pair $pair"
    fi
done