ログ出力で複数のエントリを見つける方法は?

ログ出力で複数のエントリを見つける方法は?

私は現在grepを使ってログ出力で文字列を探しています。新しいタスクでは、さまざまなファイルから複数の項目を見つける必要があります。特に、スイッチポートに接続されたMACアドレスエントリです。ネットワーク(5,000を超えるデバイス)を監査した後は、スイッチポート1から来ると報告された単一のMACを持つファイルを見つけることを心配しません。スイッチがスイッチポート1で2つ以上のMACを学習するには、これらのファイルを見つけてその情報を出力する必要があります。

理想的には、1行で48個のポートをすべて検索できる場合は、作業が簡単になります。このリストを48回も渡さなければならないからといって、世界が終わるわけではありません。

よろしくお願いします。申し訳ありません。これはプラットフォームに関する最初の質問です。

これまでに私がしたことの例:

grep "ge-0/0/2.0" example1.log
INTERNET       de:ad:be:ef:00:01 Learn       2:21 ge-0/0/2.0
INTERNET       de:ad:be:ef:00:02 Learn          0 ge-0/0/2.0
DATA           de:ad:be:ef:01:01 Learn       4:20 ge-0/0/2.0

grep "ge-0/0/20.0" example1.log
POS            de:ad:be:ef:02:01 Learn          0 ge-0/0/20.0

grep "ge-0/0/2*.0" example1.log
INTERNET       de:ad:be:ef:00:01 Learn       2:21 ge-0/0/2.0
INTERNET       de:ad:be:ef:00:02 Learn          0 ge-0/0/2.0
DATA           de:ad:be:ef:01:02 Learn          0 ge-0/0/30.0
DATA           de:ad:be:ef:01:01 Learn       4:20 ge-0/0/2.0
POS            de:ad:be:ef:02:02 Learn          0 ge-0/0/10.0
POS            de:ad:be:ef:02:01 Learn          0 ge-0/0/20.0

しかし、生の情報を得ることは退屈でエラーが発生しやすい。私のすべてのスイッチは、出力を表示する前に簡単に作成できるように、同じ2文字で始まります。上記のge-0/0/20.0のような1行のエントリは簡単に混在します。

上記の例で私が探しているものはまさに次のとおりです。

INTERNET       de:ad:be:ef:00:01 Learn       2:21 ge-0/0/2.0
INTERNET       de:ad:be:ef:00:02 Learn          0 ge-0/0/2.0
DATA           de:ad:be:ef:01:01 Learn       4:20 ge-0/0/2.0

答え1

私はあなたがマルチモードgrepを探していると思います。

grep 'pattern1\|pattern2' logfile

または

grep -E 'pattern1|pattern2' logfile

パターンの数は必要なだけ長くすることができます。pattern1ORに一致する行を印刷しますpattern2

関連情報