Además de usar un archivo temporal para ayudar, ¿hay alguna forma/programa que pueda almacenar en búfer la entrada de stdin
? pero no muestra el contenido hasta obtener el EOF
. Tampoco quiero usar una variable de shell (por ejemplo, buffer=$(cat)
).
Este programa debería comportarse como se muestra a continuación (supongamos que el nombre del programa es buffered-cat
):
$ buffered-cat
line 1
line 2
line 3
^D # Ctr-D here(End of Line)
Ahora que el programa recibió ^D
, el buffered-cat
emite el contenido
line 1
line 2
line 3
Respuesta aceptada:
La sponge
de un pobre usando awk
:
awk '{a[NR] = $0} END {for (i = 1; i <= NR; i++) print a[i]}'
Si tienes tac
, también puedes usarlo mal:
... | tac | tac