separador - Leyendo el archivo línea por línea(con espacio) en los scripts de Unix Shell-Issue
contar caracteres por linea unix (2)
Desea leer líneas sin formato para evitar problemas con barras invertidas en la entrada (use -r
):
while read -r line; do
printf "<%s>/n" "$line"
done < file.txt
Esto mantendrá espacios en blanco dentro de la línea, pero elimina los espacios en blanco iniciales y finales. Para mantenerlos también, establezca el IFS vacío, como en
while IFS= read -r line; do
printf "%s/n" "$line"
done < file.txt
Esto ahora es un equivalente de cat < file.txt
siempre y cuando file.txt
termine con una nueva línea.
Tenga en cuenta que debe escribir entre comillas "$line"
para evitar que la división de palabras divida la línea en palabras separadas, perdiendo así múltiples secuencias de espacios en blanco.
Quiero leer un archivo línea por línea en el shell scripting de Unix. La línea puede contener espacios iniciales y finales y quiero leer esos espacios también en la línea. Intenté con "while read line" pero el comando read está eliminando los caracteres de espacio de la línea :( Ejemplo si la línea en el archivo es: -
abcd efghijk
abcdefg hijk
la línea debe leerse como: - 1) "abcd efghijk" 2) " abcdefg hijk"
Lo que probé es esto (que no funcionó): -
while read line
do
echo $line
done < file.txt
Quiero una línea que incluya espacios y tabuladores en ella. Por favor, sugiera una manera.
Prueba esto,
IFS=''''
while read line
do
echo $line
done < file.txt
EDITAR:
De man bash
IFS - The Internal Field Separator that is used for word
splitting after expansion and to split lines into words
with the read builtin command. The default value is
``<space><tab><newline>''''