senza forcelle:
ls | perl -lne '$suf=substr($_,6); rename $_, "XXXXX-$suf"'
Quando si utilizza un loop shell, le mv
forchette una volta per file. Il rename
comando di Perl no.
(Il comando di rinomina di Perl ha alcune restrizioni, ma in questo caso specifico quelle restrizioni non si applicano.)
Per quanto riguarda il rename
comando mostrato in precedenza, sì, funziona, ma poi hai tutta quella confusione tra due diversi tipi di rinomina e così via. Se hai quello giusto, fantastico, ma in caso contrario, funziona anche questo.
Se non si dispone del comando perl-rename e non è possibile installarlo, è possibile:
ls | perl -lne '$old=$_; s/(\w+)/XXXXX/; rename $old, $_'
Come puoi vedere, utilizza la stessa sostituzione mostrata nella risposta in alto. Naturalmente il perl-rename ha altre campane e fischietti (la risposta in alto accennato, -n
già, poi c'è -0
, -f
e così via), e più di loro è necessario, tanto più è necessario installare che invece di rotazione proprio in questo modo .
rename
. Presumo che questo sia Larry Wallrename
, dalrename
pacchetto in Debian e derivati (e IIRCprename
sui sistemi di persuasione RedHat). Uno strumento molto utile