空白の Grep は突然動作しません。

空白の Grep は突然動作しません。

次のように実行するとgrep

$ tail -f apilog_2014.07.09.log | grep "HELLO" | grep "99999"

希望の出力を取得します。

12:22:35 server apache2:  HELLO FRIEND 99999
12:22:35 server apache2:  HELLO FRIEND 99999
12:22:35 server apache2:  HELLO FRIEND 99999

しかし、これを行うと:

$ tail -f apilog_2014.07.09.log | grep "HELLO FRIEND" | grep "99999"

私は何も得られませんでした。

私のロケールはすべてに設定されてen_US.utf8います。結果がないファイル自体は(で確認)です。[[:space:]]\stext/plain; charset=us-asciifile -bi apilog_2014.07.09.log

rsyslogヒントがある場合、ファイル自体はに書き込まれます。使用Ubuntu 12.04.4 LTS

私が逃したものはありますか?

要求通り:

$ grep "HELLO" apilog_2014.07.09.log | od -c
0000000   1   4   :   2   7   :   0   0       s   o   f   i   a       c
0000020   a   r   l   o   s   :           A   P   I   L   O   G       H
0000040   E   L   L   O       F   R   I   E   N   D       t   e   s   t
0000060   i   n   g  \n   1   4   :   3   1   :   4   5       s   o   f
0000100   i   a       c   a   r   l   o   s   :           A   P   I   L
0000120   O   G       H   E   L   L   O       F   R   I   E   N   D
0000140   t   e   s   t   i   n   g       6   3   9   0   3  \n
0000156

2014年7月14日更新

ここに答えてください:空白の Grep は突然動作しません。

関連質問(同じ解決策):grepからawkへのパイプは機能しません。

ベストアンサー1

問題が発見されました。質問の始めから覚えておけば、私が主にこのようにしていましたが、出力がtail -fないと言ったのは間違っていて、コンソールを実行し続けたところ、結局(10分後に)出力が出ました。詳細な説明はこちら

http://www.ateamsystems.com/tech-blog/grep-output-is-delayed-or-no-output-when-piping-or-using-multiple-grep-calls-with-pipes/

空白文字が出力間の時間に影響を与える理由は依然として謎ですが、そのリンクの質問に従って解決されました。

基本的に私は私を編集しました。.bashrc

alias grep="grep --color=auto --line-buffered"

今、希望の結果を得ました。

おすすめ記事