es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Linux, para eliminar el último -2 en estos archivos, puede utilizar el siguiente comando:

    rename 's/-2\.fit$/.fit/' ./*
    

    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.

Comments are closed.