Kebanyakan shell standar menyediakan cara untuk melakukan substitusi teks sederhana di dalam variabel shell. http://tldp.org/LDP/abs/html/parameter-substitution.html menjelaskan sebagai berikut:
${var/Pattern/Replacement}
First match of Pattern, within var replaced with Replacement.
Jadi gunakan skrip ini untuk mengulang semua file yang sesuai dan ganti nama masing-masing:
for file in aro_tty-mIF-*_opt
do
mv -i "${file}" "${file/-mIF-/-mImpFRA-}"
done
Saya telah menambahkan opsi -i sehingga Anda memiliki kesempatan untuk mengonfirmasi setiap operasi penggantian nama. Seperti biasa, Anda harus membuat cadangan semua file Anda sebelum melakukan penggantian nama atau penghapusan dalam jumlah besar.
Jika Anda tidak memiliki rename
Perl :
perl -e '
FILE:for $file (@ARGV){
($new_name = $file) =~ s/-mIF-/-mImpFRA-/
next FILE if -e $new_name;
rename $file => $new_name
}' *_opt
Jika Anda lakukan memiliki rename
Perl :
rename 's/-mIF-/-mImpFRA-/' *_opt
Sebelum mencoba perintah rumit seperti berikut, cadangkan file Anda . Anda tidak pernah tahu apa yang bisa disebabkan oleh kesalahan ketik (milik saya atau milik Anda).
Dengan mv
(seperti yang Anda tanyakan di komentar --- rename
seperti yang disarankan dalam jawaban lain mungkin lebih aman, terutama jika Anda dapat memiliki spasi atau karakter aneh di nama file Anda) sesuatu yang bergaya
for f in *_opt; do
a="$(echo $f | sed s/-mIF-/-mImpFRA-/)"
mv "$f" "$a"
done