viernes, 17 de septiembre de 2010

Curso Básico de Unix (VIII)

Hoy vamos a ocuparnos de los filtros. Se trata de unos comandos especiales, que toman cono entrada un fichero, y sin realizar modificaciones en el, obtienen una determinada información sobre el contenido del fichero. Pueden realizar comparaciones, extraer partes del fichero, contar…

Son comandos muy importantes, puesto que con ellos se pueden realizar multitud de operaciones, y agrupándolos con redirecciones se obtiene una potencia aun mayor.

diff fichero1 fichero2

Nos indica las diferencias que existen entre las líneas de dos ficheros de texto. Indica con un signo < las líneas que solo están en el primer fichero y con > las que están solo en el segundo fichero.



comm [opciones] fichero1 fichero2

Nos muestra tres columnas como salida. En la primera están las líneas que solo se encuentran en el primer fichero, en la segunda, las líneas que solo están en el segundo fichero, y en la ultima columna, las líneas comunes.
Para que comm funcione, los ficheros tienen que estar ordenados.
Podemos eliminar alguna columna de salida, poniendo como opción –nº siendo el número el de columna o columnas que queremos no ver.


cmp [opciones] fichero1 fichero2

Nos muestra las diferencias entre dos ficheros de texto. Si lo ponemos sin ninguna opción, nos indicara el primer carácter (byte) en que se diferencian, y si usamos la opción –l nos mostrara todos los caracteres que diferencian entre ambos ficheros.



split [-n] fichero ficherodesalida

Divide el fichero en partes de n líneas (si no indicamos nada, 10 líneas). A ficherodesalida se le añade aa, ab, ac… para distinguirlos.



head –n fichero

Obtiene las n primeras líneas de un fichero.


tail  -n fichero

Nos da las últimas n filas del fichero.


uniq [opcion] fichero

Muestra las líneas de un fichero eliminando las repetidas consecutivas. Si lo usamos sin opciones, muestra las repetidas consecutivas solo una vez, con –u muestra solo las líneas sin repeticiones consecutivas y con –d solo muestra las repeticiones consecutivas.


cut [opcion] –f[campo] fichero

Corta un fichero en columnas, definidas en el fichero original por algún carácter especial. Le indicamos cual es el carácter que define las columnas con –dcaracter y después de –f ponemos los campos que queremos mostrar (separados por comas).
También lo podemos usar para obtener un grupo de caracteres. Con la opción –c seguida de la posición de los caracteres que queremos separados por comas, o por grupos de caracteres separados por guiones.


wc [opciones] fichero

Cuenta líneas (opción –l), caracteres (opción –c) o palabras (opción –w) en un fichero


od [opciones] fichero

Nos hace un volcado del fichero en octal (opción –b), formato carácter (opción -c) o en hexadecimal (opción –x)



tr [conjunto1] [conjunto2] <  fichero

Cambia cada carácter que encuentra en el conjunto1 por el que tiene la misma posición en el conjunto2.


sort [opciones] fichero

Ordena el fichero atendiendo a las opciones que le demos. Si ponemos +nº ordenara por ese campo. Los campos, deben estar separados por tabulaciones, si queremos que el separador de campos sea otro, tenemos que definirlo con –t. Es importante tener en cuenta que el primer campo es el campo 0.
Podemos invertir el resultado con –r, ordenar numéricamente con –n y alfabéticamente con –d



grep [patrón] fichero

Busca un determinado patrón en un fichero, y si lo encuentra muestra la línea donde lo encontró. Podemos pedir que el patrón este al principio de la línea poniendo ^patrón o al final de la línea con patrón$. También podemos sustituir un carácter dentro de ese patrón por un punto, lo que significa que ese punto puede significar cualquier carácter.


Con todo esto, tenemos una enorme capacidad para buscar datos guardados, ordenarlos, convertirlos, compararlos, formatearlos…

2 comentarios:

  1. Excelente tu blog, lo estuve ojeando largo rato y terminé por añadirlo a mis RSS. Te felicito!

    ResponderEliminar

prekes sodui