Como leer un fichero línea a línea desde Bash

bash-logo-web

Para leer un fichero línea a línea desde BASH puede usar una de las siguientes variantes

1. while, read, operador <

2. cat, while, read

3. awk

Por ejemplo si tenemos el siguiente fichero:

imperdiet.nec.leo@etmalesuadafames.net
molestie.in.tempus@nuncQuisque.edu
a.sollicitudin.orci@ut.edu
lorem.Donec.elementum@arcuNunc.ca
et.rutrum.eu@nisidictumaugue.ca
augue@Cumsociis.co.uk
adipiscing@convallisestvitae.com
Nunc.sed.orci@rhoncusDonecest.org
pede@tempuslorem.net
imperdiet@InloremDonec.ca

Variante 1

Fork me on Github
while read line; do echo "Sending email to $line"; done < emails.txt

Variante 2

Fork me on Github
cat emails.txt |while read line; do  echo "Sending email to $line"; done

Variante 3

Se sugiere usar awk si el fichero posee mas de una columna ya que awk permite especificar separador de columnas, si tenemos el siguiente fichero:

Sybil|arcu@dolordolor.ca
Neville|euismod@semperNam.co.uk
Sean|In.lorem.Donec@tinciduntaliquamarcu.edu

entonces podemos ejecutar lo siguiente.

Fork me on Github
awk -F'|' '{email=$1" <"$2">"} {print "Sending email to "email;}' emails.txt

Lecturas recomendadas

  • bash -c "help while"
  • bash -c "help read"
  • man cat
  • man awk
YouTube video
Los tutoriales aquí en LibreByte están disponible bajo una licencia de software libre. Si le gusta mi trabajo considere:
Comprar un Hosting/VPS o Servidor Dedicado en MCKHost

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.