我现在的文件结构是:
- 输入
- 1
- 前NII
- 2
- 前NII
- 1
我希望它是:
- 输入
- 1_pre.nii
- 2_pre.nii
从输入文件夹中,我尝试了:for i in */pre.nii; do echo $i_pre.nii; done
但这给了我:
.nii
.nii
我也尝试过:for i in */pre.nii; do echo ${i%/*}; done
这给了我:
1
2
但我不知道如何使用%
字符串运算符并添加正确的后缀。
答案1
/
要将一个(用 转义\
)替换为_
:
for i in */pre.nii; do echo mv "$i" "${i/\//_}"; done
如果一切看起来都很好,请删除echo
.
答案2
我倾向于使用 sed 进行替换并在进行更改之前进行测试:
for i in */pre.nii;
do
j=$(echo $i | sed 's/\//_/')
echo $j
done
然后运行它
for i in */pre.nii;
do
j=$(echo $i | sed 's/\//_/')
mv -v $i $j
done