Mezclar 2 archivos en bash

Estuve realizando unas prácticas mezclando 2 archivos de texto, juntar la primera línea de archivoA con la primera línea de archivoB, archivoA tenía en su contenido:

perro
loro
gallo

Mientras que archivoB tenía en su contenido:

come perra harina
come alpiste
come maíz

Entonces el script quedó de la siguiente forma:

#!/bin/bash

ARCHIVO1=$1
ARCHIVO2=$2

TAM1=$(wc -l ${ARCHIVO1} | awk '{print $1}')
TAM2=$(wc -l ${ARCHIVO2} | awk '{print $1}')

if [ ${TAM1} -eq ${TAM2} ]; then
        for i in $(seq 1 ${TAM1})
        do
              ARCHIVOA=$(head -${i} ${ARCHIVO1} | tail -1)
              ARCHIVOB=$(head -${i} ${ARCHIVO2} | tail -1)
              echo "${ARCHIVOA} ${ARCHIVOB}"
        done
else
        echo "Los archivos no tienen la misma cantidad de líneas"
fi

exit 0

Para ejecutar se le otorgan los privilegios de ejecución al script.sh y se corre de la siguiente manera:

./script.sh archivo1 archivo2

Es una manera sencilla de mezclar o relacionar el contenido de 2 archivos línea por línea.

Advertisements
This entry was posted in Bash. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s