Posted by q3it on jueves, febrero 23, 2023 in Linux
En este post voy a hablar sobre el comando tr, este comando traduce o elimina caracteres, viene del inglés trasnlate y su sintaxis es tr conjunto de caracteres y luego otro conjunto de caracteres, por cada carácter que tengamos dentro del conjunto uno se convertirá en el equivalente donde nosotros especificamos en el conjunto dos. Por ejemplo, si en el conjunto 1 nosotros especificamos A, E, I, O y U mayúsculas y lo que queremos es convertirlos en minúsculas, en el conjunto 2 pondremos a, e, i, o y u en minúscula, por cada primer carácter del conjunto 1 se va a cambiar por el primer carácter del conjunto 2 y así sucesivamente.
Veamos un ejemplo, nosotros tenemos un fichero llamado bienvenido.txt que tiene varios problemas.
Lo primero que podemos hacer es que esta salida la vamos a pasar al comando tr y sabemos que si especificamos aquí una serie de caracteres por ejemplo: A, E, I, O Y U, y en el segundo conjunto a, e, i, o y u. El segundo conjunto convertirá las mayúsculas en minúsculas y así todas hasta llegar a la u.
Como vemos ahora a convertido todos los caracteres, como nosotros no vamos a poner todo el alfabeto. Aquí también podemos poner un rango, entonces abrimos comillas, abrimos corchetes ponemos desde la A hasta la Z y cerramos. Nosotros lo que queremos es convertir mayúsculas en minúsculas, y vemos que nos convierte todo el texto a minúsculas.
Como vemos es muy útil y muy rápido de cambiar un texto que estaba en mayúsculas en minúsculas pero, aún así tenemos problemas. En el archivo la u está duplicada y tenemos un carácter extra. El comando tr nos da la opción -s y un conjunto de caracteres que le vamos a pasar y, si por cada letra que esté en este conjunto está en el texto duplicada lo que hará es eliminarlo. No tienes que estar contigua, el sistema buscará la letra si está repetida y la eliminará, en este caso sabemos que la letra u está repetida.
Como hemos visto hemos borrado la letra u, ya tenemos casi nuestro texto listo. Ahora lo que queremos es eliminar el caracter h que se ha incluido en este fichero por error. Entonces utilizamos la opción -d y un conjunto de caracteres, por cada letra que aparece en este conjunto lo va a eliminar de nuestro texto.
Ahora como podemos ver el texto está correcto.