com tr
:
tr '\n' '-'
Isso seria o suficiente? Isso substitui cada nova linha por uma vírgula.
com sed
:
Uma solução mais bonita usando sed
:
sed -e N -e 's/\n/-/'
O N
acrescenta a nova linha ao espaço do padrão de acordo com a página do manual:
[2addr]N
Append the next line of input to the pattern space, using an embedded newline character to separate the appended material from the original contents. Note that the current line number changes.
com bash
Na verdade, o bash pode fazer o que o tr
pode fazer. Apenas por completude:
while read l; do echo -n "$l-"; done
Veja uma pergunta semelhante no Stack Overflow: SED: Como posso substituir uma nova linha (\ n)?