Red de conocimiento informático - Computadora portátil - Cómo leer un archivo línea por línea en Bash

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: