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

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

如有任何意见或建议,将不胜感激。

最佳答案

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

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

10-07 19:59