
他にも多くのファイルを含むフォルダがあり、ACB*
そのいくつかは次のとおりです。scanAC_*
scanAC
呼び出された部分を削除し、その部分があるディレクトリ名に変更したいと思います。
たとえば、ディレクトリにACB_200315
ファイルが含まれていますscanAC_typefile_2S.dcm
が、最後のファイルを次のように作成したいとします。ACB_200315_typefile_2S.dcm
今試してみましたが(Linux、SSH、名前変更オプションは利用できません)、うまくいきません。
for i in ACB*; do
cd ${i}
mv scanID* ${i/scanID/${PWD##*/}};
cd ..
done
答え1
最初は機能しなかったCostasが提供したスクリプトを調整して動作させるには、次のスクリプトを使用します。
for d in ACB*; do
cd ${d}
for f in scanID*; do
mv "${f}" "${d}${f#scanID}"
done
cd ..
done
答え2
「いくつかのファイル」では、スクリプトを少し変更する必要があります。
for d in ACB* ; do
for f in ${d}/scanID* ; do
mv "${f}" "${f/scanID/${d}}"
#mv "${f}" "${d}/${d}${f#*scanID}"
done
done
または使用探す代わりに
find ACB* -name 'scanID*' -exec bash -c 'mv "$0" ""${0/scanID/${0%\/*}}"' {} \;