LPIC

Guía extraoficial de estudio

Archivos en la Categoría: – Combinar ficheros: cat, join y paste

Comandos para combinar ficheros: cat, join y paste

Combinar ficheros con cat

Aunque este comando es utilizado para mostrar el contenido de ficheros pequeños, lo cierto es que és una herramienta para combinar ficheros (cat es abreviatura de concatenar). Utilizando este comando con una redirección de salida, se puede combinar dos ficheros en uno:

cat fichero_1.txt fichero2.txt > fichero_combinado.txt

Algunas de las opciones que ofrece son:

Flag Resultado
-E o –show-ends Muestra el signo dolar al final de cada linia ($)
-n o –number Numera las lineas al comienzo de cada una
-b o –number-nonblank Solo numera las lineas que contienen texto
-s o –squeeze-blank Substituye los grupos de lineas en blanco por una sola
-T o –show-tabs Muestra los carácteres de tabulación como ^I
El comando tac (cat al revés), invierte el orden de las lineas al mostrarlas

Asociar de ficheros por campos con join

Este comando combina dos ficheros según el campo que hayamos especificado. Por defecto join tiene en cuenta el primer campo para realizar la combinación.

Si fichero1.txt contiene:

08020 sant marti
03030 sant andreu

y el fichero2.txt:

telefono 999933993
telefono 223232323

Vemos que sucede al ejecutar el comando join:

[super@super Documents]$ join fichero1.txt fichero2.txt
08020 sant marti telefono 999933993
03030 sant andreu telefono 223232323

En el siguiente caso, mezclamos tomando como referencia los campos número dos de ambos ficheros:

join -1 2 -2 2 fichero1.txt fichero2.txt

-1 y -2 hacen referencia al fichero según el orden por el que es introducido en el comando. En este caso “-1” es fichero1.txt porque lo escribimos antes, y “-2” fichero2.txt.  El dígito que ponemos después de este sirve para indicar por que campo de este fichero queremos asociar, en este caso hemos escogido el campo dos de los dos ficheros.

Es importante que los ficheros estén ordenados por el campo que se van a mezclar.

Fusionar líneas con paste

La función de este fichero es la de fusionar ficheros línea a línea, separando las líneas de cada fichero mediante tabulaciones.

Teniendo en cuenta que el contenido de fichero1.txt y fichero2.txt es el mismo que en el ejemplo anterior, el resultado de este comando:

[super@super Documents]$ paste fichero1.txt fichero2.txt

sería:

08020 sant marti    telefono 999933993
03030 sant andreu    telefono 223232323
Para que el resultado tenga sentido, los ficheros deben tener el mismo número líneas.
Anuncios