GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ein Programm, das Stdin oder Datei puffern könnte?

Abgesehen von der Verwendung einer temporären Datei als Hilfe, gibt es eine Möglichkeit/ein Programm könnte Eingaben von stdin puffern aber gibt den Inhalt nicht aus, bis EOF abgerufen wird . Ich möchte auch keine Shell-Variable verwenden (z. B. buffer=$(cat) ).

Dieses Programm sollte sich wie folgt verhalten (angenommen, der Programmname ist buffered-cat ):

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

Nun, da das Programm ^D empfangen hat , die buffered-cat gibt den Inhalt aus

line 1
line 2
line 3

Akzeptierte Antwort:

Der sponge eines armen Mannes mit awk :

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

Wenn Sie tac haben , Sie können es auch missbrauchen:

... | tac | tac

Linux
  1. Cat Zeile X bis Zeile Y in einer riesigen Datei?

  2. Busy Box Datei zeilenweise lesen?

  3. Kann die zu patchende Datei in Eingabezeile 3 nicht finden?

  4. Lsb_release – String konnte nicht in Float konvertiert werden:„8.04 Lts“?

  5. unix - Anzahl der Spalten in der Datei

So lesen Sie Dateien Zeile für Zeile in Bash

So lesen Sie eine Datei Zeile für Zeile in Bash

Zeile NUR zu einer Datei hinzufügen, wenn sie sich nicht bereits in der Datei befindet

Ist es möglich, dass der Linux-Dateideskriptor 0 1 2 nicht für stdin, stdout und stderr gilt?

unix - teilt eine riesige .gz-Datei zeilenweise auf

Befehlszeilenprogramm zum Testen des DHCP-Dienstes