私は、さまざまなユーザーについての行を含むログファイルを持っており、このファイルをリアルタイムでテーリングしています。 1234ログエントリは次のようになります。:私は元、唯一私が指定したユーザーに関連する行をフィルタリングする動的grepパターンでファイルをテールするにはどうすればよいですか?
ID:101 Username=1234
ID:102 Username=1234
ID:999 UNWANTED LINE (because this ID was not assigned to user 1234)
ID:102 some log entry regarding the same user
ID:123 UNWANTED LINE (because this ID was not assigned to user 1234)
ID:102 some other text
ID:103 Username=1234
ID:103 blablabla
動的なIDがID」のような行でユーザに割り当てられています:101 Username = 1234 "と表示されます。そのIDで始まる後続の行は、同じユーザーに関係し、表示する必要があります。
ID:101 Username=1234
ID:102 Username=1234
ID:102 some log entry regarding the same user
ID:102 some other text
ID:103 Username=1234
ID:103 blablabla
私が最初にここで、「ユーザ名= 1234」発見され、その後、行をフィルタリングする必要があります:私は次のように指定したユーザ(1234)に関連するすべてのIDを取得し、前の行にフィルタを適用することをダイナミック尾を必要とします"ID:???"を抽出するその行から "ID:???"を含むすべての行を検索します。 「Username = 1234」の別の行が見つかると、新しいIDを抽出し、それを使用して、この新しいIDで後続の行を表示します。
私はcatを使用するとgrepを連鎖させてIDをフィルタリングすることができますが、tailの後に連鎖すると機能しません。しかし、たとえできたとしても、IDの新しい価値を「見守って」、私のgrepパターンを動的に更新するにはどうすればよいですか?
ありがとうございます!
ありがとうございました!それはまさに私が探しているものと思われる!しかし、それをどのように使用して末尾のように機能させることができますか(つまり、データに追加される新しい行を印刷しますか?) –
'tail -f logfile |を使用してください。 awk ... '無期限に読み続ける。 –
あなたは素晴らしいです!それはまさにそれです!ちょうど1つの最後のこと...私はID:XXXが必ず$ 1の位置に来るとは限りません...行内の位置($ 1、$ 2、...)に関係なく正規表現とIDを一致させる方法があることを認識しました。 ..)? –