13.9. Manipulación de archivos con cat

Red Hat Linux posee una utilidad que le puede ayudar a guardar listas cortas, agruparlas juntas y hasta mostrarle información sobre su sistema.

Esta utilidad se llama cat, diminutivo de concatenate, que significa combinar o concatenar archivos.

El comando cat visualizará también los contenidos de un archivo entero en la pantalla (por ejemplo, teclee cat filename.txt). Si un archivo es bastante largo, se deplazará rápidamente y por completo por la pantalla. Para evitar esto, use el comando cat filename.txt | less.

El uso de tuberias (|) y del comando less juntos, le permite visualizar el archivo página a página. Luego puede usar las flechas para pasar de una página a otra. Para mayor información sobre las tuberias, vea la Sección 13.10.

13.9.1. Uso de redireccionamiento

El redireccionamiento significa hacer que la shell cambie lo que está considerado como entrada estándar o el lugar donde va a parar la salida estándar.

Para redireccionar la salida estándar, usaremos el símbolo >. Al colocar > tras el comando cat (o tras cualquier utilidad o aplicación que escriba la salida estándar) reorientará su salida al nombre de archivo que siga al símbolo.

Por ejemplo, solamente con el uso de cat puede ver en la pantalla lo que introdujo como si se repitiera la línea que acaba de introducir. El siguiente ejemplo de cat lo muestra:

Figura 13-5. El comando cat

Para redirigir la salida cat a un archivo, escriba lo siguiente en el intérprete de comandos (si presiona la tecla [Intro] lo llevará a la siguiente línea en blanco):

cat > sneakers.txt

Figura 13-6. Redirección de la salida a un archivo

Presione [Intro] para ir a una línea vacía y utilice las teclas [Ctrl]-[D] para salir de cat.

¿Ha observado la diferencia (consulte la Figura 13-6)?. Para una cosa, no existen entradas dobles. Esto se debe a que la salida estándar desde cat, ha sido redireccionada. Esta redirección era de un archivo nuevo que ya había creado, llamado sneakers.txt.

Puede encontrar el archivo en el directorio en el que estaba cuando empezó cat (teclee ls si lo quiere ver listado).

Como vió anteriormente, puede usar cat para leer el archivo, al escribir:

cat sneakers.txt

AtenciónAtención
 

Tenga cuidado al reorientar la salida a un archivo, porque puede sobreescribir un archivo ya existente! Asegúrese de que el nombre del archivo que está creando no coincide con el nombre de un archivo ya existente, a menos que desee reemplazarlo.

Use el redireccionamiento de la salida a otro archivo y llámelo home.txt. Para este ejemplo, escriba el comando cat > home.txt, luego [Intro], seguido por:

bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!

A continuación, en una línea vacía, utilice las teclas [Ctrl]-[D] de nuevo para salir cat.

Luego, use cat para unir el archivo home.txt con sneakers.txt y reorientar la salida de ambos archivos a un archivo nuevo que se llama saturday.txt (verá un ejemplo en la Figura 13-7). Escriba lo siguiente:

cat sneakers.txt home.txt > saturday.txt

Figura 13-7. Unir archivos y redirigir la salida

Podrá ver que cat ha añadido home.txt donde sneakers.txt termina.

13.9.2. Adjuntar a la salida estándar

Puede utilizar el redireccionamiento para añadir información nueva al final de un archivo ya existente. Parecido a cuando ha usado el símbolo >, le indica a su shell que envíe la información a algún otro sitio que no sea el de la salida estándar.

No obstante, cuando usa >>, está añadiendo información más que reemplazándola.

Le presentamos un ejemplo práctico para aclarar este concepto. En este ejemplo unamos dos archivos creados anteriormente (sneakers.txt y home.txt) utilizando el símbolo para adjuntar la salida. Queremos añadir la información presente en home.txt a la ya presente en sneakers.txt. Basta con teclear:

cat home.txt >> sneakers.txt

Ahora, verifique el archivo usando el comando cat sneakers.txt. La salida final muestra los contenidos del archivo home.txt al final del archivo:

buy some sneakers
then go to the coffee shop
then buy some coffee
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!

El comando que ha tipeado agrega la salida del archivo home.txt al archivo sneakers.txt.

Añadiendo la salida directamente, hemos ahorrado uno o dos pasos (y un poco de espacio en el disco) utilizando unos archivos que ya existían en memoria, en vez de crear uno nuevo.

Compare los resultados de los archivos sneakers.txt y saturday.txt notará que son iguales. Para efectuar esta comparación teclee:

cat sneakers.txt; cat saturday.txt

Los contenidos de los dos archivos se visualizan en la pantalla — primero sneakers.txt, luego saturday.txt (como se muestra en la Figura 13-8).

Figura 13-8. Encadenar comandos y comparar archivos

13.9.3. Redireccionamiento de la entrada estándar

No sólo puede reorientar la salida estándar, sino también la entrada estándar.

Cuando utiliza el símbolo < para redirigir la entrada estándar, está indicando a la shell que un archivo se debe utilizar como entrada para un comando.

Utilice un archivo creado anteriormente para mostrar este concepto. Escriba

cat < sneakers.txt

Debido a que se usa el símbolo menor que (<) para separar el comando cat de un archivo, cat lee la salida de sneakers.txt.

Figura 13-9. Redireccionamiento de la entrada estándar