Redirección de la salida
La manera que hemos visto de utilizar el comando cat no parece demasiado útil. Pero, ¿y si en lugar de escribir lo que introducimos por teclado en la pantalla lo pudiéramos escribir en un fichero? Para ello podemos utilizar los mecanismos de redirección de la salida que proporciona Linux, que permiten cambiar el dispositivo de salida estándar.
Para redirigir la salida estándar utilizaremos el símbolo ‘>’ seguido de un nombre de fichero. Como ejemplo, podemos introducir el comando cat como sigue y los textos que se muestran:
cat > telefonos.txt Luis Terreros 5553251 Mateo Guerricer 5559082 Gema Pellon 5558727 Luis Terico 5550255 Carlos Calzado 5550178
Tras finalizar la ejecución con CTRL-D, podemos introducir el comando ls para comprobar que, efectivamente, se ha creado un fichero llamado telefonos.txt. La redirección le ha indicado al comando cat que escriba la salida en este fichero en lugar de hacerlo en pantalla. Como resultado, el fichero contendrá el listado que hemos introducido. Para comprobarlo, podemos utilizar el mismo comando cat de la siguiente forma:
cat telefonos.txt Luis Terreros 5553251 Mateo Guerricer 5559082 Gemma Pellon 5558727 Luis Terico 5550255 Carlos Calzado 5550178
Como vemos el comando cat puede utilizarse de manera que tome como argumento un fichero a visualizar en lugar de la entrada estándar.
El método de redirección que hemos visto siempre crea un fichero nuevo para recoger la salida y, en caso de que ya exista uno con el mismo nombre, lo borra primero. Si necesitamos redirigir la salida hacia un fichero ya existente sin borrar su contenido, podemos usar el símbolo ‘>>’ para indicar que la redirección debe hacerse añadiendo el nuevo resultado detrás del contenido existente.
Redirección de la entrada
De forma similar a como se ha visto para la salida estándar, es posible redireccionar también la entrada utilizando el símbolo ‘<‘. Por ejemplo, podríamos proporcionarle al comando cat el contenido del fichero telefonos.txt como entrada de la siguiente manera:
cat < telefonos.txt
Aunque hemos visto que no es necesario ya que este comando puede aceptar como argumento un nombre de fichero, hay otros comandos que sólo están diseñados para leer y escribir en los dispositivos estándar. Un ejemplo es el comando tr que permite transformar cadenas de texto de diversas formas. Si queremos cambiar todas los caracteres del texto de telefonos.txt de minúsculas a mayúsculas podemos hacer lo siguiente:
tr [:lower:] [:upper:] < telefonos.txt LUIS TERREROS 5553251 MATEO GUERRICER 5559082 GEMA PELLON 5558727 LUIS TERICO 5550255 CARLOS CALZADO 5550178
El texto entre comillas es un argumento del comando tr que simplemente le indica que convierta las minúsculas en mayúsculas.
Finalmente, podemos ilustrar la utilización combinada de ambas formas de redirección completando el ejemplo anterior para que deje su salida en un fichero llamado telef-may.txt:
tr [:lower:] [:upper:] < telefonos.txt > telef-may.txt