for name in TestSR*
do
newname=CL"$(echo "$name" | cut -c7-)"
mv "$name" "$newname"
done
Ini menggunakan substitusi perintah bash untuk menghapus 6 karakter pertama dari nama file input via cut
, tambahkan CL
hasilnya, dan menyimpannya di $newname
. Kemudian mengganti nama lama menjadi nama baru. Ini dilakukan pada setiap file.
cut -c7-
menetapkan bahwa hanya karakter setelah indeks 7 yang harus dikembalikan dari input. 7-
adalah rentang yang dimulai pada indeks 7 tanpa akhir; yaitu, sampai akhir baris.
Sebelumnya, saya telah menggunakan cut -b7-
, tetapi -c
seharusnya digunakan untuk menangani pengkodean karakter yang dapat memiliki beberapa byte per karakter, seperti UTF-8.
Saya akan mengatakan yang paling sederhana untuk hanya menggunakan
rename
perintah yang umum di banyak distribusi Linux. Ada dua versi umum dari perintah ini jadi periksa halaman manualnya untuk menemukan yang mana yang Anda miliki:Jika Anda ingin menggunakan versi dari util-linux-ng di sistem Debian, tersedia dengan nama
rename.ul
sumber
rename
ada di alam liar. Periksarename
dokumentasi lokal Anda untuk mengetahui cara menggunakan milik Anda.rename TestSR '' *
rename "\<pre\>" "" *
->Unterminated <> operator at (user-supplied code).
Ekspansi parameter Shell sudah cukup untuk transformasi sederhana seperti ini. Substitusi perintah kurang efisien karena perlu menelurkan proses tambahan (untuk substitusi perintah itu sendiri dan
cut
/sed
).sumber
TestSR*
menemukan file,CL${f#TestSR}
akan menjadi nama baru. Barang-barang setelah#
akan diganti dari nama file (f
).Ini salah satu caranya:
ls *.{h,m}
-> Temukan semua file dengan ekstensi .h atau .mn=CL
-> Tambahkan awalan CL ke nama filesed -e 's/^Test//'
-> Menghapus awalan Uji dari nama filemv $a $n
-> Melakukan penggantian namasumber
Anda dapat mencoba dengan:
Lihat
man bash
(bagian "Ekspansi Parameter") untuk detailnya.sumber
Yah, itu tidak sesulit yang saya kira.
sumber
for f in TestSR*.[mh]
,for f in TestSR*.{m,h}
,for f in TestSR*.m TestSR*.h
.Jika Anda membutuhkan sesuatu yang lebih permanen, Anda dapat melakukan ini
sumber