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.