tr '\n' ',' | sed 's/,$/\n/'
tr
substitui cada caractere de nova linha por ,
, incluindo o último (após 07/21/2018
). Então sed
substitui ,
no final com uma nova linha para formar uma linha compatível com POSIX sem arrastar ,
.
Observe que sed
é uma ferramenta de processamento de texto que, por padrão, trabalha com uma linha por vez. O que quer que deixe tr
é uma única linha; pode ser muito longo, dependendo da sua entrada, e sed
pode não ser mais a melhor ferramenta para lidar com isso.
Eu reconsideraria a ideia de ter todos os resultados em uma única linha, apenas para evitar esse cenário. Existem maneiras de substituir este sed
específico por uma ferramenta que trabalha com bytes (não linhas). Mas mesmo se você fizer isso aqui, você ainda terá uma linha potencialmente longa, o que é inconveniente para analisar depois.
OK, se você realmente precisa fazer isso, use o seguinte comando para criar uma linha arbitrariamente grande. Toda a análise é feita com ferramentas operando em bytes:
head -c -1 | tr '\n' ',' && printf '\n'
head
retira o último caractere, assumimos cegamente que é uma nova linha; tr
altera todas as novas linhas restantes em ,
caracteres; printf
adiciona uma nova linha à direita para tornar seu resultado uma linha compatível com POSIX.