Saludos estimados lectores, el día de hoy quiero presentarles como se usa el comando tr, el cual es un comando poco conocido pero puede sernos muy útil y ahorrarnos unas horas de trabajo, básicamente si le damos al comando tr un flujo de datos nos permitirá modificarlo, borrarlo, sustituirlo, etc.

Su sintaxis es la siguiente:

tr

[OPCION] A B

Algunas opciones son las siguientes:

-d: Borrar los carácteres indicados en A
-s: Elimina o reemplaza los carácteres repetidos indicados en A
-c: Todos los carácteres que no sean los indicados en A los convierte en B


Para empezar vamos a realizar una simple sustitución, en este ejemplo sustituiremos las mayúsculas por las minúsculas:

echo PRUEBA | tr AEIOU aeiou

Y esto nos lanzara como resultado:

PRueBa

También podemos eliminar los caracteres deseados, para ello no necesitaremos de B:

echo PRUEBA | tr -d UA

Nos lanzara:

PREB

Otro ejemplo para eliminar seria borrar los espacios en blanco de alguna oración:

echo «esto es una oracion» | tr -d » » 

Nos lanzara:

estoesunaoracion

También podemos usar la opción -s como dije anteriormente para eliminar caracteres repetidos por ejemplo:

echo «((ejemplo)» | tr -s «(«

Y esto nos lanzara:

(ejemplo)

Y por ultimo la opción -c nos permite sustituir elementos que no estén especificados por ejemplo:

echo PRUEBA | tr -c «P» «*»

Nos lanzara:

P*****

También tr permite otras cosas avanzadas como lo son el uso de «caracteres no visibles» y «rangos de caracteres«.

Los caracteres no visibles son los siguientes:

 NNN            carácter con valor octal NNN (de uno a tres dígitos)
  \              barra invertida
  a              pitido audible (BEL)
  b              espacio hacia atrás
  f              salto de página
  n              salto de línea
  r              retorno de carro
  t              tabulación horizontal
  v              tabulación vertical

Guiándonos de esta tabla de caracteres no visibles podemos por ejemplo sustituir la cadena «ramphis che ureña punto libre blog» en una lista de palabras, por ejemplo:

echo «ramphis che ureña punto libre blog» | tr » » «n»

El cual nos lanzaría:

ramphis
che
ureña
punto
libre
blog

Así mismo podemos sustituir la tabulacion del comando ls por un salto de linea:

ls | tr «t» «n»

Prueba ejecutando el comando sin tr y luego con tr y veras la diferencia, otra cosa es el uso de rango de caracteres por ejemplo:

echo ramphis | tr «a-z» «A-Z»

Nos lanzara RAMPHIS, osea que cambio las minúsculas por las mayúsculas, también podemos usar rango de números «1-9«, esto es todo por hoy, espero que les haya gustado la guía y que les sirva de algo en sus labores diarias, hasta la próxima.

Basada en la guia de banyut.obolog.com