Saya memiliki koleksi file yang cocok dengan pola seperti 'assignment02.cc', 'assignment02.h', 'assignment02.txt', dll. Saya ingin menyalin / mengganti nama file-file ini menjadi 'assignment03.cc', 'assignment03. h ',' assignment03.txt ', dan seterusnya.
Saya menduga ini harus langsung menggunakan skrip shell dan sed. Sejauh ini saya punya:
OLD_NO=$1
NEW_NO=$2
echo "Moving from $OLD_NO to $NEW_NO"
for name in assignment$OLD_NO.* ; do
newname=$(echo $name | sed 's/\(.*\)$OLD_NO\(.*\)/\1xx$NEW_NO\2/')
echo "$name -> $newname"
# mv -v $name $newname
done
Sayangnya cara saya memohon sed selalu mengembalikan string input $name
dan tidak benar-benar melakukan pencarian / ganti regex.
Catatan: Mencari di internet ada rename
perintah yang memiliki fungsi ini, tetapi itu tidak tersedia di MacBook saya.
newname=$(echo $name | tr $OLD_NO $NEW_NO)
$OLD_NO
dan$NEW_NO
tidak akan diperluas.