Cómo cambiar el nombre de archivos en un directorio como el siguiente archivo:PMC21375.pdf.txt
, necesito que me cambien el nombre a 21375.txt
. es decir, necesito eliminar ambos PMC
y pdf
de cada nombre de archivo.
Respuesta aceptada:
Con rename
de perl :
rename 's/(PMC|.pdf)//g' *pdf.txt
Demostración:
$ ls *txt
PMC21375.pdf.txt
$ rename -n 's/(PMC|.pdf)//g' *txt
PMC21375.pdf.txt -> 21375.txt
desde el shell
oportuno. Es muy útil, puedes poner algo de código perl como lo hago yo en una sustitución.
Puede eliminar el -n
(interruptor de modo de ejecución en seco) cuando sus pruebas sean válidas.
Hay otras herramientas con el mismo nombre que pueden o no ser capaces de hacer esto, así que ten cuidado.
Si ejecuta el siguiente comando (linux
)
$ file $(readlink -f $(type -p rename))
y tienes un resultado como
.../rename: Perl script, ASCII text executable
entonces esta parece ser la herramienta adecuada =)
Si no, para que sea el predeterminado (normalmente ya es el caso) en Debian
y derivados como Ubuntu
:
$ sudo update-alternatives --set rename /path/to/rename
(reemplazar /path/to/rename
a la ruta de su perl's rename
comando.
Por último, pero no menos importante, esta herramienta fue escrita originalmente por Larry Wall, el padre de Perl.