siguiente arriba anterior
Siguiente: Ejercicios Arriba: Utilidades con archivos y Anterior: Utilidades con archivos y

Utilidades con archivos

Existe variedad de mandatos para comparar archivos: cmp para archivos de cualquier tipo y diff y sus derivados (diff3, sdiff, comm) para archivos de texto.

cmp nombre1 nombre2 Compara los archivos nombre1 y nombre2. Muestra la posición del primer byte diferente y retorna 0 si los archivos son iguales y 1 si son diferentes.

El valor de salida del programa cmp puede utilizarse en expresiones de tipo lógico para construir mandatos de carácter compuesto. En este caso, el valor 0 equivale a «falso» y el valor 1 a «cierto».

En el caso de utilizar archivos de texto, es de utilidad poder saber en qué línea se da la diferencia, e incluso que las muestre en la salida estándar. Aparte de esto, diff es una utilidad que no se conforma con mostrar la primera discordancia entre archivos, sino que intenta «resincronizar» de la mejor forma posible los contenidos de los archivos para comparar todo el archivo.

diff nombre1 nombre2 Compara los archivos de texto nombre1 y nombre2.

Como resultado produce un conjunto de líneas que expresan las diferencias y que puede utilizarse, incluso para reconstruir un archivo apartir del otro mediante la utilidad ed.

Supongamos que disponemos del archivo ABC

Este es el contenido de un archivo de texto
que contiene como ejemplo tres líneas
de texto, para ilustrar la aplicación
del mandato diff.

y del archivo abc

Este es el contenido de un archivo de texto
que contiene como ejemplo tres líneas
de texto, con el fin de ilustrar la aplicación
del mandato diff.

El resultado de diff ABC abc es:

3c3
< de texto, para ilustrar la aplicación
---
> de texto, con el fin de ilustrar la aplicación

Como quiera que los archivos de texto tienen una mala relación información/tamaño, UNIX dispone de una herramienta de compresión y descompresión de archivos que emplea el algoritmo de Lempel-Ziv adaptativo. Al comprimir/descomprimir modifica el nombre del archivo, por lo cual éste no deberá tener más que un enlace.

compress nombre Comprime el archivo nombre y genera el archivo nombre.Z si el resultado es de talla inferior.
uncompress nombre Descomprime el archivo nombre.Z y genera el archivo nombre.
zcat Análogo a cat para una entrada estándar comprimida.

Una utilidad interesante es grep. Permite buscar un patrón en un archivo. Existe una versión rápida para buscar cadenas de texto de longitud fija: fgrep y otra para buscar de forma muy general expresiones regulares: egrep.

Otros mandatos que resultan interesantes, se incluyen en la tabla que sigue:

crypt Encrypta/desencripta la entrada estándar mediante una clave.
grep patrón Busca una línea que corresponda con un patrón en la entrada estándar y lo muestra por la salida estándar.
fgrep texto Busca una línea que contenga cierto texto en la entrada estándar y la muestra por la salida estándar. Es más eficiente que grep en el caso de texto fijo.
sort Ordena lexicográficamente las líneas de la entrada estándar hacia la salida estándar.
sort lista Ordena lexicográficamente las líneas de la lista de archivos y lo muestra hacia la salida estándar.
uniq Elimina líneas repetidas consecutivas de la entrada estándar hacia la salida estándar
more Muestra pantalla a pantalla las líneas que se le presentan por la entrada estándar.
more nombre Muestra pantalla a pantalla las líneas del archivo nombre.



Subsecciones
siguiente arriba anterior
Siguiente: Ejercicios Arriba: Utilidades con archivos y Anterior: Utilidades con archivos y
Cesar Llamas Bello 2001-01-09