Como posso substituir todas as novas linhas por espaço, exceto a última nova linha. Posso substituir toda a nova linha para o espaço usando, tr
mas como posso fazer isso com algumas exceções?
bash
shell-script
text-processing
tr
Gilles 'SO- parar de ser mau'
fonte
fonte
-s
e-d
parecem feitas para este caso.Você pode usar
tr
para substituir todas as novas linhas para o espaço e passar a saídased
e substituir o último espaço de volta para uma nova linha:fonte
Re-implementar a idéia de vonbrand em Perl, desde que o arquivo é pequeno o suficiente:
fonte
Algo como
sed -e 's;\n\(.\); \1;'
deveria fazer ...fonte
Isso funcionou para mim.
fonte
tr
comando substitui todas as novas linhas por espaços e seused
comando remove o último espaço. Isso resulta em um arquivo sem uma nova linha final e, portanto, não é o que a pergunta está pedindo. A propósito, não faz sentido usarg
em nosed
comando. Como você está usando$
, ele pode corresponder apenas no final, o queg
é inútil. Você também não precisa escapar do espaço, o `` também não faz diferença.