¿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.

Respuestas:


18

Intenta hacer esto:

echo $(cat $1)

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.