Cómo leer un archivo línea por línea en Bash
En sistemas Linux, OSX, *BSD o similares a Unix, puede utilizar el bucle bash ? while..do..done para leer un archivo línea por línea. Sígueme a continuación para aprender cómo usar el shell KSH o BASH para leer un archivo línea por línea en sistemas Linux o tipo UNIX.
Método Bash para leer un archivo línea por línea
Para bash, ksh, zsh y otros shells, la sintaxis es la siguiente
while read -r line ; do COMMAND; done < input.file
Se pasa al comando de lectura con la opción -r para evitar que se interpreten las barras invertidas.
Agregue la opción IFS= antes del comando de lectura para evitar que se eliminen los espacios en blanco iniciales y finales.
while IFS= read -r line; do COMMAND_on $line; done < input.file
Esta es una sintaxis más adecuada para la lectura humana:
# ! /bin/bashinput="/path/to/txt/file" while IFS= read -r vardo echo "$var"done < "$input"
Ejemplo
El A continuación se muestran algunos ejemplos:
#!/bin/kshfile="/home/vivek/data.txt" while IFS= leer líneahacer # mostrar $línea o hacer algo con $línea echo "$línea"hecho <" $file"
Mismo ejemplo en bash shell:
#!/bin/bashfile="/home/vivek/data.txt" while IFS= read -r linedo # mostrar $line o hacer algo con $line printf '%s\n' "$line"done <"$file"
También puedes mirar este mejor:
# !/bin/bashfile="/etc/passwd" while IFS=: read -r f1 f2 f3 f4 f5 f6 f7do # mostrar campos usando f1, f2,..,f7 printf 'Nombre de usuario: %s, Shell: %s, Directorio de inicio: %s\n' "$f1" "$f7" "$f6"done <"$file"
Resultado de muestra:
Figura 01: Script Bash: Leer el archivo y generar el archivo línea por línea Script Bash: leer el archivo de texto línea por línea y crearlo como un archivo pdf
Mi archivo de entrada es el siguiente (faq.txt):
Mi script bash:
Consejo: leer desde variables bash
Veamos cómo listar en Debian o Ubuntu Linux Para todos los paquetes php instalados, ingrese:
Resultado de muestra:
Ahora puede verlo desde $list ellos, e instale estos paquetes:
Resultado de muestra: