bash - 如何匹配要在循环中使用的文件名

时间:2015-06-12 02:25:15

标签: linux bash

我想在每对文件上运行一个循环命令

a_xxx.wig
b_xxx.wig
c_xxx.wig

a_xxx.bed
b_xxx.bed
c_xxx.bed 

我希望根据样本名称(a,b或c)匹配文件,并让循环通过每个对运行一个命令,而不必一次只执行一个

for file in * do
bedtools intersect -a $sample.wig -b $sample > $sample.bed
done

任何想法或指示都将不胜感激

1 个答案:

答案 0 :(得分:3)

wig文件是输入,所以只需迭代它们。您可以提取文件名的一部分,以用作其他名称的“基础”。

for file in *.wig; do
    sample=${file%.wig}
    bedtools intersect -a "$sample.wig" -b "$sample" > "$sample.bed"
done