Bash
如何使用目錄名稱重命名文件?
我現在的文件結構是:
輸入
1
- pre.nii
2
- pre.nii
我希望它是:
輸入
- 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
但我不知道如何使用
%
字元串運算符並添加正確的後綴。
用 替換一個
/
(用 轉義\
)_
:for i in */pre.nii; do echo mv "$i" "${i/\//_}"; done
如果一切正常,請刪除
echo
.
在進行更改之前,我傾向於使用 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