Skrypt Bash do usuwania podziałów linii?

9

Potrzebuję skryptu, który wprowadza plik i echa jego zawartości z usuniętymi łamaniem linii - że tak powiem, „zawiniętym słowem”.

Próbowałem:

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

ale nic nie zwraca.

southpointingchariot
źródło

Odpowiedzi:

18

Spróbuj to zrobić:

echo $(cat $1)
gertvdijk
źródło
1
Cieszę się, że mogłem pomóc ci znaleźć jeden z wielu sposobów, aby się tam dostać, ale wypróbuj Googling następnym razem. To jest to, co mam jako drugi wynik pojawiały się za pomocą słów kluczowych bash, line, end, remove.
gertvdijk
@gertvdijk lata minęły, a to pytanie jest tym, co otrzymałem jako pierwszy wynik wyskakujący przy użyciu podobnych słów kluczowych teraz :)
Jorge Suárez de Lis
sposobem innym niż skrypt / cmdline jestecho `cat some_file.ext`
nmz787,
7

Znalazłem tę istotną odpowiedź w stosie przepływu:

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

Najszybszym sposobem wydaje się użycie tr:

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

lub na przykład:

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

Aby dowiedzieć się więcej o trpoleceniu, oczywiście man tr.

Anser Stackoverflow zawiera sposoby, aby to zrobić za pomocą sed (byłbym moim pierwszym wyborem, ale sed jest bardzo zorientowany na linie i sprawia, że ​​nie interpretuje podziałów linii, ponieważ separatory pól są tajemne) oraz sposób używania read i bash, blisko twojego wstępne podejście.

roadmr
źródło