
私の現在のファイル構造は次のとおりです。
- 入力する
- 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
/
\
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