Una forma de leer archivos desde Bash

Una de las formas sencillas de leer un archivo de texto simple, desde una shell como Bash, podría ser usando un cat archivo, si por casualidad necesitamos leer el archivo y separar cada palabra o cada letra se podría usar la misma función pero agregando ciertos parámetros.

Conseguí hacerlo de la siguiente manera:

#!/bin/bash

cat $1 | while read LINEA               # Leo el archivo por líneas
do
        # Capturo el número de palabras que tiene la línea
        LECTURA=$(echo $LINEA | wc -w)

        # Recorro la línea por cada palabra que existe en la misma
        for INI in $(seq 1 1 $LECTURA)
        do
                # Separo cada palabra delimitándolas con un espacio
                PALABRA=$(echo $LINEA | cut -d" " -f$INI)

                # Con las siguientes 2 líneas calculo el tamaño de la palabra
                CALWORD=$(echo $PALABRA | wc -c)
                TAMWORD=$(($CALWORD-1))

               # Recorro cada palabra para identificar cada letra
                for FIN in $(seq 1 1 $TAMWORD)
                do
                        LETRA=$(echo $PALABRA | cut -c $FIN)
                        echo $LETRA
                        LETRA=" "
                        sleep 1
                done

               # Imprimo por pantalla para ver las salidas
               # que me va generando el script                
               echo $PALABRA
               PALABRA=" "
               sleep 1
        done

       # Imprimo por pantalla para ver las salidas
       # que me va generando el script
       echo $LINEA
       LINEA=" "
done

exit 0

Guardo todo ese contenido en un archivo con permisos de ejecución. Ej. leer.sh, luego para correrlo debo pasarle como argumento el archivo que quiero leer de la siguiente forma:

./leer.sh archivo
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