Смена рабочего каталога при циклическом перемещении по папкам
В настоящее время я пытаюсь запустить программное обеспечение MRI (TBSS) для файлов изображений (scan.nii.gz) в командной строке Linux.
Все сканы хранятся в разных папках для разных участников, а имена файлов идентичны, поэтому:
/home/scans/participant1/scan.nii.gz
/home/scans/participant2/scan.nii.gz
/home/scans/participant3/scan.nii.gz
Это программное обеспечение создает результаты анализа в текущем рабочем каталоге. Поскольку сканы имеют одно и то же имя, они все время перезаписываются.
Я хотел бы перебрать все папки участников, сделать его рабочим каталогом, а затем выполнить команду tbss, которая является просто tbss_1_preproc scan.nii.gz. Таким образом, файл будет сохранен в текущем рабочем каталоге, который является каталогом участника.
Есть ли разумный способ сделать это в Linux?
Спасибо!
1 ответ
Попробуйте это в BASH. Код ниже не проверен, но он должен дать вам подсказку
#! /bin/bash
find . -name scan.nii.gz | while read line
do
cd $(dirname "${line}")
tbss_1_preproc $(basename "${line}")
done
Поместите его в файл и сделайте его исполняемым. Скопируйте его в папку сканов и выполните его.