Ajout d'une ligne vide à la fin de l'entrée

11

J'ai une commande qui produit une sortie sans nouvelle ligne à la fin, comme ceci

Myprompt$ somecmd
dksfjdl
dsfjdlkfj
dsfjdkfj
dfjdkfjMyprompt$

Actuellement, je surmonte cela par somecmd | sed 's/$/\n/' | tr -s '\n' Y a-t-il une meilleure façon de le faire?

balki
la source

Réponses:

19

Exécutez simplement echo après, il devrait générer une nouvelle ligne

Myprompt$ somecmd ; echo

Et si vous avez besoin de le nourrir à autre chose, exécutez-le dans un sous-shell:

Myprompt$ ( somecmd ; echo ) | someothercmd

Ou .. comme le souligne @camh, le sous-shell n'est en fait pas nécessaire, vous pouvez l'exécuter avec une liste de commandes dans l'environnement shell actuel avec:

Myprompt$ { somecmd ; echo ; } | someothercmd
Kjetil Jorgensen
la source
3

Alimentez-le via un utilitaire qui lit les lignes d'entrée et les lignes de sortie, comme dans awk { print $0 }.

alex
la source