Ficheros de apéndice, reorientación y visionado con cat

Red Hat Linux posee una utilidad que le puede ayudar a guardar listas cortas, agruparlas juntas y, al mismo tiempo, mostrarle lo que es capaz de hacer su sistema.

Esta utilidad se llama cat, diminutivo de "concatenate," que significa que ensarta ficheros.

El comando cat visualizará también los contenidos de un fichero entero en la pantalla (por ejemplo, teclee cat filename.txt). El uso de cat puede ser práctico, si el archivo es bastante corto. Pero si un fichero es bastante largo, se deplazará rápidamente y por completo por la pantalla, ya que cat visualiza el fichero por completo.

Pero cat puede ejecutar una muestra rápida de dos términos importantes: entrada de datos estándar y salida de datos estándar.

La entrada de datos estándar y la salida de datos estándar dirigen la entrada y la salida (conocidas como E/S) al usuario. Si un programa lee desde una entrada estándar, leerá por defecto desde un teclado. Si un programa escribe al programa de salida, escribirá a la pantalla por defecto.

Inicie cat para ver lo que significa. En el indicador de comandos de la shell, teclee:

cat

El cursor se mueve a una línea en blanco. En la línea en blanco, teclee:

stop by sneaker store

y pulse la tecla Intro. Su pantalla aparecerá de la siguiente manera:

[newuser@localhost newuser]$ cat
stop by sneaker store
stop by sneaker store

Figura 10-7. cat muestra Entrada de datos estándar y Salida de datos estándar

Para salir de cat, mueva el cursor a una línea en blanco pulsando Intro. A continuación pulse Ctrl-D.

El comando cat acaba de mostrar la definición la entrada y la salida estándar; escribió palabras (entrada estándar) que han aparecido en la pantalla (salida estándar).

Uso de reorientación

La reorientación 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.

Anteriormente hemos usado cat para mostrar el concepto de entrada estándar y salida estándar. A continuación utilizaremos cat para ver cómo se puede reorientar la salida estándar.

Para reorientar 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 fichero que siga al símbolo.

Intentémoslo. En el indicador de comandos, teclee:

[newuser@localhost newuser]$ cat > sneakers.txt
buy some sneakers
then go to the coffee shop
then buy some coffee

Figura 10-8. Reorientación de la salida a un fichero

Pulse Intro para ir a una línea vacía y utilice las claves Ctrl-D para salir de cat.

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

Puede encontrar el fichero en el directorio en el que estaba cuando empezó cat (teclee ls si desea verlo listado).

También puede usar cat para leer el fichero, al escribir:

cat sneakers.txt

en el indicador de comandos.

AtenciónNo sobreescriba ficheros
 

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

A continuación usaremos la reorientación de la salida para otro fichero y llámelo home.txt. Teclee lo siguiente:

[newuser@localhost newuser]$ cat > home.txt
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.

Podemos comprobar el fichero de nuevo al teclear:

cat home.txt

en el indicador de comandos.

Utilice cat de nuevo para unir home.txt con sneakers.txt y reorientar la salida de ambos ficheros a un fichero nuevo llamado saturday (encontrará un ejemplo en el Figura 10-9). Teclee lo siguiente:

[newuser@localhost newuser]$ cat sneakers.txt home.txt > saturday

Figura 10-9. Unir ficheros y redirigir la salida

Ha llegado el momento de comprobar su trabajo. Teclee:

[newuser@localhost newuser]$ cat saturday

debería ver algo parecido a:

[newuser @localhost newuser]$ cat saturday
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!
[newuser @localhost newuser]$

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

SugerenciaCombinación de ficheros con cat
 

Crear y combinar ficheros con cat puede ser una buena solución alternativa para un editor de textos como Pico.

Adjuntar salida estándar

Puede utilizar la reorientación para añadir información nueva al final de un fichero 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 ficheros 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 uniéndola a la ya presente en sneakers.txt. Basta con teclear:

cat home.txt >> sneakers.txt

Para visualizar el contenido del fichero, ejecute el comando:

cat sneakers.txt

De esta forma hemos añadido la salida del fichero home.txt.

Tecleando este comando hemos dicho al sistema "añada la salida del fichero home.txt al fichero sneakers.txt."

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

Si controla los ficheros sneakers.txt y saturday, notará que son iguales. Para efectuar esta comparación teclee:
cat sneakers.txt; cat saturday

Los contenidos de los dos ficheros se visualizan en la pantalla - antes sneakers.txt, y luego saturday (como se muestra en Figura 10-10).

AtenciónNunca reemplace mientras está adjuntando
 

Recuerde que cuando quiere añadir la salida a un fichero, tiene que teclear los símbolos >>. En caso contrario, vuelva a crear el fichero original con lo que quería añadir.

Figura 10-10. Encadenar comandos y comparar ficheros

Reorientación 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 reorientar la entrada estándar, está indicando a la shell que un fichero se debe utilizar como entrada para un comando.

Utilice un fichero creado anteriormente para mostrar este concepto.

cat < sneakers.txt

Utilizando el símbolo menor que (<) para separar el comando cat de un fichero, cat lee la salida de sneakers.txt.