Script Bash para remover quebras de linha?

9

Eu preciso de um script que insira um arquivo e faça eco de seu conteúdo com quebras de linha removidas - "quebra de linha", por assim dizer.

Eu tentei:

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

mas isso não retorna nada.

southpointingchariot
fonte

Respostas:

18

Tente fazer isso:

echo $(cat $1)
gertvdijk
fonte
1
Ainda bem que pude ajudá-lo a encontrar uma das muitas maneiras de chegar lá, mas tente pesquisar no Google um pouco mais na próxima vez. Isso é o que eu tenho como um segundo resultado aparecendo usando as palavras-chave bash, line, end, remove.
gertvdijk
@gertvdijk anos se passaram, e esta questão é o que eu tenho como um primeiro resultado aparecendo usando palavras-chave semelhantes agora :)
Jorge Suárez de Lis
não-script / cmdline maneira éecho `cat some_file.ext`
nmz787
7

Encontrei esta resposta relevante no stackoverflow:

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

A maneira mais rápida parece estar usando tr:

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

ou para o seu exemplo:

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

Para saber mais sobre o trcomando, é claro man tr,.

O anser stackoverflow contém maneiras de fazer isso com o sed (teria sido minha primeira escolha, mas o sed é muito orientado a linhas e faz com que ele não interprete quebras de linha, pois os delimitadores de campo são arcanos) e uma maneira de usar read e bash, próximo ao seu abordagem inicial.

roadmr
fonte