texto separador reemplazar print por linea insertar examples contar comando caracteres campos shell unix ksh

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>''''