tidak ada garpu:
ls | perl -lne '$suf=substr($_,6); rename $_, "XXXXX-$suf"'
Ketika Anda menggunakan loop shell, mv
garpu sekali per file. Perlrename
Perintah tidak.
(Perintah rename Perl memiliki beberapa batasan, tetapi dalam kasus khusus ini pembatasan tersebut tidak berlaku.)
Adapun rename
perintah yang ditunjukkan sebelumnya, ya itu berhasil, tetapi kemudian Anda memiliki semua kebingungan antara dua jenis nama yang berbeda dan seterusnya. Jika Anda memiliki yang benar, bagus, tetapi jika tidak, ini juga berfungsi.
Jika Anda tidak memiliki perintah perl-rename dan tidak dapat menginstalnya, Anda bisa melakukan ini:
ls | perl -lne '$old=$_; s/(\w+)/XXXXX/; rename $old, $_'
Seperti yang Anda lihat, ini menggunakan substitusi yang sama seperti yang ditunjukkan pada jawaban teratas. Tentu saja perl-rename memiliki lonceng lainnya dan peluit (jawaban atas disebutkan, -n
sudah, kemudian ada -0
, -f
dan sebagainya), dan lebih dari mereka yang Anda butuhkan, semakin Anda harus menginstal bahwa alih-alih rolling Anda sendiri dengan cara ini .
rename
. Saya berasumsi ini adalah Larry Wall'srename
, darirename
paket di Debian dan turunannya (dan IIRCprename
pada sistem persuasi RedHat). Alat yang sangat berguna.