Linux、SSHのディレクトリ名に基づいて複数のファイルの名前を変更しようとしています。
というディレクトリがありますXYZ01smith
。という名前のファイルが4つありますsmith_5*
。このファイルにプレフィックスを追加する必要がありますXYZ01
。
しかし、、次のディレクトリはですXYZ02perry
。名前は4つです。このファイルにプレフィックスを追加するperry_3*
必要があります。XYZ02
各ディレクトリに対してこれを行うループがあります。
for i in smith_5*;
do mv ${i} XYZ01${i};
done
XYZ01name
ただし、50のディレクトリ(〜)があるため、XYZ50name
1つのスクリプトを使用して50のすべてのディレクトリを処理できることをお勧めします。これが可能でなければならないと確信していますが、実装方法がわかりません。
ベストアンサー1
そしてzsh
:
autoload zmv # best in ~/.zshrc
zmv '(XYZ??)(*)/(*)' '$1$2/$1$3'