Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

tailの結果を2回grepすると表示されない@Linux

      2013/07/15

こんな感じで、grep するとマッチするはずのaaaaがなぜか何も表示されません。

$ cat hoge.txt
aaaa
bbbb
$ tail -f hoge.txt | grep aaa | grep aaa

実は2番目のgrepが悪さしているようで、性能低下を招かないように2番目のgrepがバッファリングし、ある程度溜まってから3番目のgrepに結果を渡しているようです。

バッファリングは、–line-buffered オプションを使うと無効にできます。

$ tail -f hoge.txt | grep --line-buffered aaa | grep aaa
aaaa

はい。表示されましたね。

 - IT技術, サーバ構築

336px

Comment

  1. MT より:

    あまり誰も書かれていない情報でして、困って探していたらたどり着きました。
    標準出力にはすぐに出力されるのに、同じコマンドをファイルへリダイレクトすると書き込まれず困っていました。
    ありがとうございました。

Message

メールアドレスが公開されることはありません。

  関連記事

no image
簡単バックアップシェル

サーバ管理していると、ちょっとしたデータを定期的にバックアップしたいことがありま …

no image
Windows 10 のストアアプリが起動しない

Windows 10のストアが起動しなくなってしまったので、その時実施した対処方 …

no image
Lenovo Trackpoint キーボードで、Fnキーの振る舞いを逆にする@Windows 10

Lenovo の Trackpointキーボード 0B47208を使っているので …

no image
echoコマンドで改行やタブを扱うには@Linux (Debian Etch)

UNIX系OSでも最も有名な部類に入るコマンドechoは、引数の文字列や変数の中 …

no image
VMware 2.0 を専用クライアントで使う (msiからファイルの抽出)

VMware 2.0 は基本的にWebインタフェースしか使えないと思っていました …

ISOイメージをUSBメモリに入れてLinuxインストール

以前、grubを手動で入れて、USBメモリからOSをインストールするようなことを …

no image
adblock plusで正規表現を使う@Firefox

広告削除ツールとして有名なFirefoxアドオンのaddblock plusで正 …

no image
PS3のアップデートチェック

PS3をインターネットに繋いでいると、起動時にソニーのサイトにアップデートチェッ …

no image
CPU数を動的に変更する@CentOS 5.5

カーネルにパラメータ(maxcpus)を与えて、OSで使うCPU数を変更できるこ …

no image
Javaアプリの日本語文字化け対策

Linux上のSunのJVMで、GUIアプリを動かすと文字化けしてしまいます。 …