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

Español English

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

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

Variante 2

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.

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

Deja un comentario

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.