GNU/Linux >> Tutoriels Linux >  >> Linux

Un programme qui pourrait mettre en mémoire tampon Stdin ou File ?

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

Linux
  1. Boîte occupée lire le fichier ligne par ligne ?

  2. Lsb_release - Impossible de convertir la chaîne en flottant :'8.04 Lts' ?

  3. Trouver le fichier puis cd dans ce répertoire sous Linux

  4. unix - nombre de colonnes dans le fichier

  5. grep sans afficher le chemin/fichier :ligne

Comment lire des fichiers ligne par ligne dans Bash

Comment lire un fichier ligne par ligne dans Bash

ajouter une ligne à un fichier UNIQUEMENT s'il n'est pas déjà dans le fichier

Est-il possible que le descripteur de fichier Linux 0 1 2 ne soit pas pour stdin, stdout et stderr ?

Trouvez n'importe quelle ligne dans VI qui a quelque chose d'autre que ATCG

Programme en ligne de commande pour tester le service DHCP