GNU/Linux >> Linux Esercitazione >  >> Linux

Un programma in grado di eseguire il buffering di Stdin o file?

Oltre a utilizzare un file temporaneo come aiuto, c'è un modo/programma per memorizzare nel buffer l'input da stdin ma non emette il contenuto fino a quando non ottiene il EOF . Non voglio nemmeno usare una variabile di shell (ad es. buffer=$(cat) ).

Questo programma dovrebbe comportarsi come di seguito (supponendo che il nome del programma sia buffered-cat ):

$ buffered-cat
line 1
line 2
line 3
^D # Ctr-D here(End of Line)

Ora che il programma ha ricevuto ^D , il buffered-cat emette il contenuto

line 1
line 2
line 3

Risposta accettata:

La sponge di un povero usando awk :

awk '{a[NR] = $0} END {for (i = 1; i <= NR; i++) print a[i]}'

Se hai tac , puoi anche abusarne:

... | tac | tac

Linux
  1. Cat Line X to Line Y su un file enorme?

  2. Casella occupata Leggi file riga per riga?

  3. Come reindirizzare l'output di un programma su un file zip?

  4. Non riesci a trovare il file da patchare nella riga di input 3?

  5. Lsb_release – Impossibile convertire la stringa in float:"8.04 Lts"?

Come leggere i file riga per riga in Bash

Come leggere un file riga per riga in Bash

È possibile che il descrittore di file linux 0 1 2 non sia per stdin, stdout e stderr?

Come posso trovare un file/directory che potrebbe trovarsi ovunque sulla riga di comando di Linux?

Ansible decommentare la riga nel file

Programma a riga di comando per testare il servizio DHCP