Как мне сопоставить имена файлов в разных каталогах в bash?

-2

У меня есть две директории с файлами в них.

dir_one содержит файлы с такими именами, как:

10.recode.vcf.map

Шаблон имени файла dir_two выглядит так:

genetic_map_GRCh37_chr10.txt

Я написал R-скрипт, который что-то делает с файлами. Чтобы запустить скрипт, мне нужно выполнить следующую команду:

Интерполяция Rscript.R 10.recode.vcf.mapgenetic_map_GRCh37_chr10.txt

Теперь я хочу запустить этот скрипт 22 раза, но не могу найти способ сопоставления двух файлов в разных каталогах.

Пока что я только понял, как извлечь общее число из имени файла:

for i in ./map_files/*
do
        echo ${i} ${i} | cut -d'/' -f 3 | cut -d'.' -f 1
done

Я не уверен, что делать дальше ... Кто-нибудь может посоветовать?

YKY
источник
Должен ли быть промежуток между map а также genetic в вашем скрипте запускается строка? Вы должны рассказать нам больше о содержимом каталогов ( dir_one, dir_two а также map_files ) и объясните критерии сопряжения, прежде чем мы сможем помочь.
AFH
Критерием сопряжения является число. № 10 в примере.
YKY
Оба каталога содержат множество имен файлов. Внутри каталога имена файлов отличаются только числом (в примере 10, поэтому вместо 10 будет 9, 7, 22 и так далее)
YKY

Ответы:

0

Кажется, я понял это. Я использовал баш расширение параметра вот так:

#/bin/bash

for i in ./map_files/*
do
        t=${i##*/}
        t=${t%%.*}
        Rscript interpolation.R $i ./genetic_map_HapMapII_GRCh37/*chr$t.*
done
YKY
источник
1
Я не мог понять это из информации, которую вы предоставили: map_files является dir_one, но ты так не сказал; и строка ответа не соответствует примеру в вашем вопросе. Пожалуйста, будьте внимательны, если будете задавать какие-либо вопросы в будущем.
AFH