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?

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

3

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.