Para substituir um /
(com \
) por _
:
for i in */pre.nii; do echo mv "$i" "${i/\//_}"; done
Se tudo estiver correto, remova echo
.
Minha estrutura de arquivos agora é:
Eu gostaria que fosse:
Na pasta de entrada, tentei: for i in */pre.nii; do echo $i_pre.nii; done
Mas isso me deu:
.nii
.nii
Eu também tentei: for i in */pre.nii; do echo ${i%/*}; done
que me deu:
1
2
Mas não consegui descobrir como usar o operador %
string e adicionar o sufixo correto.
Eu costumo usar sed para fazer a substituição e testar antes de fazer alterações:
for i in */pre.nii;
do
j=$(echo $i | sed 's/\//_/')
echo $j
done
execute-o
for i in */pre.nii;
do
j=$(echo $i | sed 's/\//_/')
mv -v $i $j
done