El comando “rename” de Linux no puede reemplazar un guion.
Quiero eliminar el último -2
en estos archivos:
$ ls ./
ZVul-1-2s-0-C1-2.fit ZVul-1-2s-2-C1-2.fit ZVul-2-2s-1-C2-2.fit
$ rename "-2.fit" ".fit" ./*
rename: opción inválida -- '2'
Pruebe 'rename --help' para más información.
$ rename -V
rename de util-linux 2.37.2
$ ls ./
ZVul-1-2s-0-C1-2.fit ZVul-1-2s-2-C1-2.fit ZVul-2-2s-1-C2-2.fit
¿En qué puedo equivocarme con respecto al guion?
He intentado rename -n 's/-(?=\d)//' *.xxx
desde aquí pero no funciona, parece que esta es la versión de C++ que no admite Perl regs.
for i in *; do mv "$i" "`echo $i | sed "s/\(.*\)-2/\1/"`"; done
Esto funciona. Pero rename
debería ser más fácil.
davy.ai
Como experto en IT especializado en Linux, para eliminar el último
-2
en estos archivos, puede utilizar el siguiente comando:Esto renombrará todos los archivos en el directorio actual que terminen con
-2.fit
a.fit
sin el-2
. Si encuentra un error respecto a que un guión sea considerado como una opción, puede intentar usar comillas simples alrededor de las cadenas de búsqueda y reemplazo para evitar que el shell las interprete como opciones.