次の形式のログファイルを検索しています。
<date> <connection from: ip> <new connection ID> <info>
<date> <connection ID> <info>
次のコマンドを使用してIPを取得しましたが、このログファイルから接続IDを取得するのに数分かかります。
tail -f logfile | grep ip --line-buffered
まず、grepを使用してIPを検索してから、接続IDに基づいて引き続き検索できますか?
接続IDは予測不可能であり、一致後のログの次の行は必ずしも私のIPに接続されている接続IDではありません。
答え1
いいえ。
するとき
tail -f logfile | grep "ip-address" --line-buffered
することができますただパターンに一致する行を取得しますip-address
。その後、パイプラインをさらに呼び出すと、grep
元のログファイルの他の行を見ることはできません。
ログファイルのいくつかの例を見ないと、(盲目的に)動作する解決策を見つけることは困難です。
答え2
grepコマンドでさまざまなパターンを使用できます。たとえば、「ip」と「connection id」を含む2行をgrepできます。
tail -f logfile | grep -E 'ip|connection ID' --line-buffered