2013-03-10 32 views
15

音を鳴らしたい、ログファイルに例外があります。sedと組み合わせてtailを使用する方法。

私はbashスクリプトを使用しています。

しかし残念なことに、tailがsedとの組み合わせで使用されても動作しません。

私は以下のコマンドを試してここに投稿しました。

tail -f mylogs.log | grep "Exception" | sed -e $'s/Exception/Exception\a/' 



tail -f mylogs.log | sed -e $'s/Exception/Exception\a/' 



tail -f mylogs.log | grep "Exception" | sed -e $'s/Exception/Exception\a/' 
+0

+1の '$ ''構造体に+1します。私はかつてそれを見たことがない。 –

答えて

25

問題は、それが端末に書いていないということgrepが見るということですので、それは最終的にsedを一度に処理できる大きな塊を書いて、その出力をバッファします。

tail -f mylogs.log \ 
    | grep --line-buffered Exception \ 
    | sed -u -e $'s/Exception/Exception\a/' 

は(私もgrep--line-bufferedオプションに似ている、sed-uフラグを追加したことに注意してください:できるだけ早く、彼らが利用可能だとしてラインをプリントアウトし、それを言うと、--line-bufferedオプションを使用します私のテストでは、このコマンドに違いはないようですが、そのためにそれを含める方が良いと思います)。

+0

観察: '$ 's /例外/例外\ a /''はテキストを変更していないようですが、 '$ 's/Exception/Exception \\\ a /''は私のシステム上にあります。 –

+0

@ruakh、私はコマンドを試しただけで、テキストを記録しますが、サウンドはありません。私は設定をする必要がありますか? – Kiran

+0

@ another.anon.coward: '\ a'はアラート(ベル)文字です。ラインの視覚的な外観に影響を与えずにビープ音を鳴らします。 – ruakh

関連する問題