next up previous
Next: Conectando con otros ordenadores Up: Prácticas Introducción a los Previous: Procesos

Utilidades para manejo de textos en UNIX

UNIX tiene una gran cantidad de utilidades para procesar ficheros de texto, hasta el punto que no es necesario en muchos casos usar editores más o menos interactivos, como el vi. Con esos comandos se pueden escoger líneas, columnas y palabras de un fichero, y crear otro, sustituyéndolas o modificándolas de alguna manera. Aunque hay órdenes complejas, como sed y awk, en esta sección se verán sólo las más simples. Todas estas órdenes funcionan tanto como filtro como pasándole un nombre de fichero.

>
presentan su entrada estandar o el fichero que se le pasa en la línea de comandos página a página; pasan de página cada vez que se pulsa la barra espaciadora. less solo existe en ciertos sistemas (Linux, por ejemplo), y permite más cosas, como ir hacia atras o hacia adelante de página en página o línea a línea.
>
sirve para buscar expresiones regulares, pero como todavía no he explicado lo que es eso, baste decir que sirve para buscar palabras dentro de ficheros de texto; por ejemplo
grep pepe *
busca la palabra pepe en todos los ficheros.
 $$
head,tail presentan las 10 primeras y últimas líneas de un fichero; con la opción -n se ven n líneas a la vez; además, head -n + tail +n presentan el fichero completo. Funcionan también como filtro, es decir, se puede escribir
bash\$ cat pepito | tail
 $$
wc cuenta palabras, líneas y bytes.
 $$
tee significa ``t'', y desvía su entrada estándar a pantalla y a otro fichero; es como >, pero además imprime en pantalla.
 $$
crypt encripta o codifica ficheros usando un password o clave,
 (kal-el) ~/txt/info> crypt < msdos.tex > msdos.crypt
Enter key:
; para desencriptar, se usa de esta forma
 
(kal-el) ~/txt/info> crypt pepito < msdos.crypt
; pepito es la indescifrable clave.
 $$
cut,paste cortan y pegan, como su propio nombre indica; el primero selecciona columnas de un fichero y el segundo pega varias columnas en un solo fichero. Por ejemplo, cut -c-30 pepito selecciona los caracteres 1 a 30 del fichero pepito, y los imprime en salida estándar.
 $$
diff compara ficheros y presenta las diferencias que hay entre ambos, aunque en un formato un poco críptico. Estos ficheros .diff se suelen usar para los parches (patches), o modificaciones de programas tras su presentación.
 $$
uuencode codifica en ASCII de 7 bits un fichero binario, para que pueda ser enviado por correo electrónico. Menos usado hoy en día que la codificación ``base64'' que es la que se usa en los ``attachments'' de Eudora, Pine y otros programas de correo electrónico.
 $$
sort es un filtro que clasifica por orden alfabético o numérico, ascendente o descendente, y usando cualquiera de los ``campos'' de una línea. Se consideran diferentes campos grupos de caracteres alfanuméricos separados por un separador, como una coma o un espacio.

Ejercicios 6   Crear un fichero que contenga el resultado de aplicar wc sobre algún directorio que contenga varios ficheros; a partir de ese fichero, crear otro que contenga el nombre de los ficheros en primer lugar, utilizando ficheros temporales y varias órdenes UNIX . Poner la secuencia de órdenes en un fichero que se llame cutpaste.sh


next up previous
Next: Conectando con otros ordenadores Up: Prácticas Introducción a los Previous: Procesos
Juan Julian Merelo Guervos
1999-12-14