次のように実行すると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:]]
\s
text/plain; charset=us-ascii
file -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分後に)出力が出ました。詳細な説明はこちら
空白文字が出力間の時間に影響を与える理由は依然として謎ですが、そのリンクの質問に従って解決されました。
基本的に私は私を編集しました。.bashrc
alias grep="grep --color=auto --line-buffered"
今、希望の結果を得ました。