Pregunta

Tal vez más fácil de explicar con un ejemplo:

$ echo '\&|'
\&|
$ echo '\&|' | while read in; do echo "$in"; done
&|

Parece que el "leer" comando está interpretando las barras en la entrada como se escapa y es la eliminación de ellos. Necesito procesar un archivo línea por línea, sin cambiar su contenido, y no estoy seguro de cómo dejar de leer de ser inteligente aquí. ¿Alguna idea?

¿Fue útil?

Solución

accrding a: http://www.vias.org/linux-knowhow/bbg_sect_08_02_01 .html :

  

r
  Si se da esta opción, la barra invertida no actúa como un carácter de escape.   La barra invertida se considera parte   de la línea. En particular, una   backslash-salto de línea par no se puede utilizar   como una continuación de línea.

Funciona en mi máquina.

$ echo '\&|' | while read -r in; do echo "$in"; done
\&|

Otros consejos

Uso read -r, según http://www.ss64.com/bash/read.html :

  

r
      Si se da esta opción, la barra invertida no actúa como un carácter de escape.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top