Как сделать сценарий, который копирует файлы с различных подчиненных папок?

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

folder/subjects/subject_name/mri/norm.mgz 

копии этот файл в

folder/investigation_folder/fs_norms/subject_name/ 

и преобразовывает norm.mgz кому: norm.nii использование mri_convert, и делает это с +300 предметами (в папке предметов).

Это должно быть довольно просто... Кто-либо может помочь мне здесь?

Я - большой newb! Это - пример того, что я хотел бы сделать - с единственным предметом:

mkdir /mnt/projects/Project_folder/thalamic_subnuclei/fs_norms/gXXX/

cp /mnt/projects/Project_folder/subjects/gXXX/mri/norm.mgz /mnt/projects/Project_folder/thalamic_subnuclei/fs_norms/gXXX/

mri_convert mnt/projects/Project_folder/thalamic_subnuclei/fs_norms/gXXX/norm.mgz mnt/projects/Project_folder/thalamic_subnuclei/fs_norms/gXXX/norm.nii

Все мои предметы называют g, сопровождаемым 3-4 числами. Теперь я должен настроить цикл, который делает это с +300 предметами в /mnt/projects/Project_folder/subjects/ папка.

1
задан 24 April 2018 в 15:28

1 ответ

Вот пример, как ДЛЯ цикла может быть применен в рамках сценария удара для решения этой задачи:

#!/bin/bash

# Execute do-done inner part for each "item" under "folder/subjects/"
for subject in folder/subjects/*
do
    # Check whether the source file exists
    if [[ -f ${subject}/mri/norm.mgz ]]
    then
        # ${subject##*/} will cut the parent path from the value of the variable '$subject'
        echo "Processing: ${subject##*/}"

        # Create the new subject directory
        mkdir -p "folder/investigation_folder/fs_norms/${subject##*/}"

        # Copy the .mgz file into the new directory
        cp "${subject}/mri/norm.mgz" "folder/investigation_folder/fs_norms/${subject##*/}/"

        # Do the conversion to .nii (I'm not sure this is the correct syntax of mri_convert that you are using)
        mri_convert "folder/investigation_folder/fs_norms/${subject##*/}/norm.mgz" "folder/investigation_folder/fs_norms/${subject##*/}/norm.nii"
    fi
done
2
ответ дан 7 December 2019 в 13:25

Другие вопросы по тегам:

Похожие вопросы: