GNU/Linux >> Linux の 問題 >  >> Linux

Stdinまたはファイルをバッファリングできるプログラム?

一時ファイルを使用して支援する以外に、stdinからの入力をバッファリングする方法/プログラムはありますか? ただし、EOFを取得するまでコンテンツを出力しません 。シェル変数も使用したくない(例:buffer=$(cat)

このプログラムは次のように動作する必要があります(プログラム名がbuffered-catであると想定します) ):

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

プログラムが^Dを受け取ったので 、buffered-cat 内容を出力します

line 1
line 2
line 3

承認された回答:

貧乏人のsponge awkを使用する :

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

tacをお持ちの場合 、あなたもそれを誤用することができます:

... | tac | tac

Linux
  1. 入力行3でパッチを適用するファイルが見つかりませんか?

  2. Lsb_release –文字列をフロートに変換できませんでした:「8.04Lts」?

  3. アセンブリ内のファイルからの読み取り

  1. ファイルを見つけて、Linux でそのディレクトリに cd します

  2. unix - ファイル内の列数

  3. まだファイルにない場合にのみ、ファイルに行を追加します

  1. Linuxファイル記述子0 1 2がstdin、stdout、およびstderrではない可能性はありますか?

  2. Linuxコマンドラインのどこにでもある可能性のあるファイル/ディレクトリを見つけるにはどうすればよいですか?

  3. ファイル内の Ansible アンコメント行