GNU/Linux >> Znalost Linux >  >> Linux

Program, který by mohl ukládat do vyrovnávací paměti Stdin nebo soubor?

Kromě použití dočasného souboru pro pomoc existuje způsob/program, který by mohl ukládat vstup z stdin ale nevypíše obsah, dokud nezíská EOF . Nechci používat ani proměnnou shellu (např. buffer=$(cat) ).

Tento program by se měl chovat jako níže (předpokládejme, že název programu je buffered-cat ):

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

Nyní, když program přijal ^D , buffered-cat vypíše obsah

line 1
line 2
line 3

Přijatá odpověď:

sponge chudého muže pomocí awk :

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

Pokud máte tac , můžete jej také zneužít:

... | tac | tac

Linux
  1. Kočičí čára X do čáry Y na obrovském souboru?

  2. Zaneprázdněná schránka Číst soubor řádek po řádku?

  3. Nemůžete najít soubor k opravě na vstupním řádku 3?

  1. Lsb_release – Nelze převést řetězec na plovoucí:‚8,04 Lts‘?

  2. Čtení ze souboru v sestavě

  3. Najděte soubor a poté cd do tohoto adresáře v Linuxu

  1. unix - počet sloupců v souboru

  2. grep bez zobrazení cesty/souboru:řádku

  3. Je možné, že linuxový deskriptor souboru 0 1 2 není pro stdin, stdout a stderr?