miércoles, 3 de agosto de 2016

paste

El comando paste hace lo contrario de cut. En lugar de extraer una columna de texto de un archivo, añade una o más columnas de texto a un archivo. Lo hace leyendo múltiples archivos y combinando los campos encontrados en cada archivo en una sola secuencia en la entrada estándar. Como cut, paste acepta múltiples argumentos de archivo y/o entrada estándar. Para demostrar como opera paste, realizaremos una cirugía a nuestro archivo distros.txt para producir una lista cronológica de lanzamientos.

De nuestro trabajo anterior con sort, primero produciremos una lista de distribuciones ordenadas por fecha y guardaremos el resultado en un archivo llamado distros-by-date.txt:

[me@linuxbox ~]$ sort -k 3.7nbr -k 3.1nbr -k 3.4nbr distros.txt > distros-by-date.txt

A continuación, usaremos cut para extraer los dos primeros campos del archivo (el nombre de distribución y la versión), y almacenar el resultado en un archivo llamado distro-versions.txt:

[me@linuxbox ~]$ cut -f 1,2 distros-by-date.txt > distros-versions.txt
[me@linuxbox ~]$ head distros-versions.txt
Fedora  10
Ubuntu  8.10
SUSE    11.0
Fedora  9
Ubuntu  8.04
Fedora  8
Ubuntu  7.10
SUSE    10.3
Fedora  7
Ubuntu  7.04

La parte final de la preparación es extraer la fecha de lanzamiento y almacenarla en un archivo llamado distro-dates.txt:

[me@linuxbox ~]$ cut -f 3 distros-by-date.txt > distros-dates.txt
[me@linuxbox ~]$ head distros-dates.txt
11/25/2008
10/30/2008
06/19/2008
05/13/2008
04/24/2008
11/08/2007
10/18/2007
10/04/2007
05/31/2007
04/19/2007

Ahora tenemos las partes que necesitamos. Para completar el proceso, usamos paste para colocar la columna de fechas antes de los nombres y versiones de las distribuciones, creando así una lista cronológica. Esto se hace simplemente usando paste y ordenando sus argumentos en el orden deseado:

[me@linuxbox ~]$ paste distros-dates.txt distros-versions.txt
11/25/2008 Fedora      10
10/30/2008 Ubuntu      8.10
06/19/2008 SUSE        11.0
05/13/2008 Fedora      9
04/24/2008 Ubuntu      8.04
11/08/2007 Fedora      8
10/18/2007 Ubuntu      7.10
10/04/2007 SUSE        10.3
05/31/2007 Fedora      7
04/19/2007 Ubuntu      7.04
12/07/2006 SUSE        10.2
10/26/2006 Ubuntu      6.10
10/24/2006 Fedora      6
06/01/2006 Ubuntu      6.06
05/11/2006 SUSE        10.1
03/20/2006 Fedora      5

No hay comentarios:

Publicar un comentario