Я пытаюсь выполнить команду, которой нужны два входных файла, каждый из которых специфичен для каждого образца. Мое решение состояло в том, чтобы использовать два цикла for:
FILES=testgroup/*split.bam
TARGETS=testgroup/*intervals
for f in $FILES
do
for t in $TARGETS
do
IndelRealigner -Input1 $f Input2 $t Output $f.realigned.bam
done
done
Но когда я выполняю этот цикл bash по второму циклу for ($t) с первым постоянным, затем цикл повторяется.
Мне нужно, чтобы входные данные зацикливались одновременно (т. е. $f Sample1 и $t Sample1, $f Sample2 и $t Sample2).
Спасибо за любую помощь.
Изменить:
Примеры имен образцов и связанных с ними входных файлов:
D8.1.112.fastqAligned.out.sam.rg_added_sorted.bam.dedup.bam.split.bam D8.1.112.fastqAligned.out.sam.rg_added_sorted.bam.dedup.bam.split.bam.intervals
Тем временем я переместил два набора файлов в новый каталог, чтобы посмотреть, смогу ли я затем указать две группы в одном массиве? Я потерял на том, как это сделать, хотя. Уже:
files=testgroup/newdir
for f in $files
do
for t in $files
do
IndelRealigner -Input1 $f Input2 $t Output $f.realigned.bam
done
done
Любая дальнейшая помощь приветствуется!
FILES
иTARGETS
, чтобы вы могли сделать это в одном цикле. Подумайте, что вы решите это вручную и примените это к коду. Возможно, поделитесь некоторыми образцами имен файлов/целей, и, возможно, мы сможем помочь выяснить этот шаблон/отношение. Кроме того... избегайте имен ваших переменных в верхнем регистре, так как переменные в верхнем регистре зарезервированы для системы. - person JNevill   schedule 11.07.2018