Örneğin, tüm dosya adına bir regex arama ve değiştirme uygulayabilen araçlar vardır perl-rename
( örneğin, genel olarak da adlandırılır prename
). Bu tür araçlarda, bir "yakalama grubu" (parantez) içinde \d+
veya [0-9]+
içinde birden çok rakam eşleşecek ve daha sonra programa $1
veya \1
programa göre başvuracaksınız .
Örneğin:
prename -v 's/file(\d+)$/file$1_xyz/' file[123]
prename -v 's/(file\d+)$/$1_xyz/' file[123]
( -v
Seçenek, ön adın değişiklikleri -n
yazdırmasını sağlar. Değişiklikleri gerçekten yeniden adlandırmadan yazdırmak için kullanabilirsiniz .)
Bunu sadece mv
ve sed
: kullanarak da başarabilirsiniz.
for old in file[123]; do
new=$(sed -r 's/file([0-9]+)$/file\1_xyz/' <<< "$old")
mv -v "$old" "$new"
done
Ama yakından bakarsanız , sayıya ihtiyacınız yok. Tek yapmanız gereken, yine de bazı statik metinler eklemek.
prename 's/$/_xyz/' file[123]
for f in file[123]; do
mv "$f" "${f}_xyz"
done