Adicionando uma linha vazia no final da entrada

11

Eu tenho algum comando que produz saída sem nova linha no final, assim

Myprompt$ somecmd
dksfjdl
dsfjdlkfj
dsfjdkfj
dfjdkfjMyprompt$

Atualmente eu supero isso por somecmd | sed 's/$/\n/' | tr -s '\n' Existe uma maneira melhor de fazer isso?

    
por balki 13.01.2011 / 12:05

2 respostas

19

Basta executar o echo depois, ele deve gerar uma nova linha

Myprompt$ somecmd ; echo

E se você precisar alimentá-lo com outra coisa, execute-o em um sub-shell:

Myprompt$ ( somecmd ; echo ) | someothercmd

Ou .. como @camh aponta, o subshell não é realmente necessário, você pode executá-lo com uma lista de comandos no ambiente shell atual com:

Myprompt$ { somecmd ; echo ; } | someothercmd
    
por 13.01.2011 / 13:47
3

Alimente-o por meio de algum utilitário que lê entrada em linhas e linhas de saída, como em awk { print $0 } .

    
por 13.01.2011 / 13:20