ほとんどの標準シェルは、シェル変数内で単純なテキスト置換を行う方法を提供します。 http://tldp.org/LDP/abs/html/parameter-substitution.html は次のように説明しています:
${var/Pattern/Replacement}
First match of Pattern, within var replaced with Replacement.
したがって、このスクリプトを使用して、適切なすべてのファイルをループし、それぞれの名前を変更します:
for file in aro_tty-mIF-*_opt
do
mv -i "${file}" "${file/-mIF-/-mImpFRA-}"
done
-i オプションを追加したので、各名前変更操作を確認できます。いつものように、大量の名前変更や削除を行う前に、すべてのファイルのバックアップを作成する必要があります。
Perl の rename
がない場合 :
perl -e '
FILE:for $file (@ARGV){
($new_name = $file) =~ s/-mIF-/-mImpFRA-/
next FILE if -e $new_name;
rename $file => $new_name
}' *_opt
する場合 Perl の rename
を持っている :
rename 's/-mIF-/-mImpFRA-/' *_opt
次のような複雑なコマンドを試す前に、ファイルをバックアップしてください .タイプミス (私のものかあなたのものか) がどのような原因になるかはわかりません。
mv
で (コメントで尋ねたように --- rename
他の回答で示唆されているように、特にファイル名にスペースや奇妙な文字を含めることができる場合は、おそらくより安全です)スタイルの何か
for f in *_opt; do
a="$(echo $f | sed s/-mIF-/-mImpFRA-/)"
mv "$f" "$a"
done