En plus d'utiliser un fichier temporaire pour aider, existe-t-il un moyen/un programme de mettre en mémoire tampon l'entrée de stdin
mais n'affiche pas le contenu avant d'avoir obtenu le EOF
. Je ne veux pas non plus utiliser de variable shell (par exemple, buffer=$(cat)
).
Ce programme doit se comporter comme ci-dessous (en supposant que le nom du programme est buffered-cat
):
$ buffered-cat
line 1
line 2
line 3
^D # Ctr-D here(End of Line)
Maintenant que le programme a reçu ^D
, le buffered-cat
affiche le contenu
line 1
line 2
line 3
Réponse acceptée :
L'sponge
du pauvre en utilisant awk
:
awk '{a[NR] = $0} END {for (i = 1; i <= NR; i++) print a[i]}'
Si vous avez tac
, vous pouvez aussi en abuser :
... | tac | tac