¿Bash script para eliminar saltos de línea?

9

Necesito un script que ingrese un archivo y haga eco de su contenido con los saltos de línea eliminados, por ejemplo, "palabra ajustada".

He intentado:

#!/bin/bash
find $HOME '$1' | while read line; do echo "${line}"; done

pero simplemente no devuelve nada.

Southpointingchariot
fuente

Respuestas:

18

Intenta hacer esto:

echo $(cat $1)
gertvdijk
fuente
1
Me alegra poder ayudarte a encontrar una de las muchas formas de llegar allí, pero intenta buscar en Google un poco más la próxima vez. Esto es lo que me dieron como resultado una segunda apareciendo utilizando las palabras clave bash, line, end, remove.
gertvdijk
@gertvdijk han pasado años, y esta pregunta es lo que obtuve como primer resultado apareciendo con palabras clave similares ahora :)
Jorge Suárez de Lis
la forma sin script / cmdline esecho `cat some_file.ext`
nmz787
7

Encontré esta respuesta relevante en stackoverflow:

/programming/1251999/sed-how-can-i-replace-a-newline-n

La forma más rápida parece estar usando tr:

tr '\n' ' ' </your/file

o por tu ejemplo:

cat `find $HOME '$1"` | tr '\n' ' '

Para obtener más información sobre el trcomando de hacer, por supuesto, man tr.

El stackerflow anser contiene formas de hacer esto con sed (habría sido mi primera opción, pero sed está muy orientado a las líneas y consigue que no interprete los saltos de línea ya que los delimitadores de campo son arcanos) y una forma usando read y bash, cerca de su acercamiento inicial.

roadmr
fuente