tr, el comando para modificar caracteres
El otro día tuve que pasar a minúscula el nombre de una serie (unos 30) de ficheros que me habían pasado. Cambiar el nombre, uno a uno, me hubiera llevado como 10 minutos así que busqué algún script que automatizara el trabajo.
El script que encontré es el siguiente :
for i in `ls -1`; do mv $i `echo $i |tr “[:upper:]” “[:lower:]“`; done
Fácil y rápido, te pasa a minúscula todos los caracteres que estuvieran a mayúscula para los ficheros dentro del directorio desde donde ejecutes la sentencia.
Este pequeño fragmento de código me dió a conocer un comando que no conocía tr, que según su página man, sirve para “traducir, –estrujar– y/o eliminar caracteres”.
Ciertamente este comando no es muy potente ya que sólo permite especificar ún carácter o un grupo de los ya predefinidos, la lista puede verse ejecutando tr --help. Esto impide definir expresiones regulares, pero claro, el objetivo de este comando no es ese.
Algunos ejemplos más son los siguientes:
# Cambia espacios en blanco por guión bajo tr [:blank:] _ # Cambia todo aquel carácter que no sea un carácter de control o de puntuación tr -c "[:cntrl:][:punct:]" "*"

