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.

Respostas:


18

Tente fazer isso:

echo $(cat $1)

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.