Синхронизировать функцию с двумя разными файлами из разных папок в Bash - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь синхронизировать функцию с двумя массивами файлов. Вот что я сделал:

path_c=/dir1/*fa 
path_b=/dir2/*rem

for i in 1 2 3 4; do echo ${path_c[$i]} ${path_b[$i]};  done

У меня 4 файла в каталоге 1 и 4 файла в каталоге 2. Файлы имеют одинаковое имя, но разный формат

У кого-нибудь есть хорошее решение этой проблемы?

Заранее спасибо

Пример: у меня есть следующие файлы

dir1/dog.fa 
dir1/cat.fa
dir2/dog.rem
dir2/cat.rem

Они должны работать одновременно с функцией Макраме

macrame -a dir1/dog.fa -b dir2/dog.rem
macrame -a dir1/cat.fa -b dir2/cat.rem

Я пытаюсь сделать цикл, потому что у меня есть сотни файлов в обоих каталогах

1 Ответ

0 голосов
/ 15 марта 2019

Ни одна из переменных не является массивом.

path_c=(/dir1/*fa)
path_b=(/dir2/*rem)

Однако вам , вероятно, не нужны массивы, и вы можете использовать следующее:

for c_file in /dir1/*.fa; do
  b_file=/dir2/$(basename "$c_file" .fa).rem
  echo "$c_file" "$b_file"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...