Como criar um script que copie arquivos de diferentes pastas de assunto?

1

Estou com problemas para configurar um script que copie e converta arquivos. O que eu basicamente quero é um script que leve um assunto, por exemplo

folder/subjects/subject_name/mri/norm.mgz 

copia esse arquivo para

folder/investigation_folder/fs_norms/subject_name/ 

e converte o norm.mgz para norm.nii usando mri_convert e faz isso com +300 assuntos (na pasta de assuntos).

Isso deve ser bem simples ... Alguém pode me ajudar aqui?

Eu sou um grande novato! Este é um exemplo do que eu gostaria de fazer - com um único assunto:

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

Todos os meus assuntos são chamados g seguidos por 3-4 números. Agora eu preciso configurar um loop que faça isso com os +300 assuntos na pasta /mnt/projects/Project_folder/subjects/ .

    
por Silas Nielsen 24.04.2018 / 13:19

1 resposta

2

Aqui está um exemplo de como o loop FOR pode ser aplicado em um script bash para resolver essa tarefa:

#!/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
    
por pa4080 24.04.2018 / 14:00