ログからパターンを検索

ログからパターンを検索

ログの形式は次のとおりです。

Junk Junk Junk : Junk Junk Junk:IP/Port Junk Junk

を使用して検索したいIP。出力は、対応するIP/Portログファイルの各行の一部でなければなりません。

私はすべての可能な組み合わせと私が知っているすべてを試しましたgrep:Dcutこれは可能ですか?それとも、一部のログ解析ツールを引き続き使用する必要がありますか?awkbash

編集する:フォーマットが全く同じではなく、位置がJunk:IP/Port変わって使用できない場合がありますのでご注意ください。awk '{print $7}'

修正する:サンプルログの追加

DATE NAME-FIREWALL : %RULE-NUM: Teardown TCP connection PKT-NUM for LAN1:X.X.X.X/XX to LAN2:X.X.X.X/XX duration 0:0:0 bytes XXXX TCP FINs
DATE NAME-FIREWALL : %RULE-NUM: Built inbound TCP connection PKT-NUM for LAN1:X.X.X.X/XX (X.X.X.X/XX) to LAN2:X.X.X.X/XX (X.X.X.X/XX)

LAN2の横にあるIP /ポート部分を検索してインポートする必要があります。

ベストアンサー1

何について

awk '{for(i=1;i<=NF;i++) if ( $i ~ /[^:]*:/ ) { n=split($i,A,":"); if (length(A[2]) && n==2) print A[2] ; }} ' b.txt
X.X.X.X/XX
X.X.X.X/XX
X.X.X.X/XX
X.X.X.X/XX

編集:(LANを使用)

awk '{for(i=1;i<=NF;i++) if ( $i ~ /[^:]*:/ ) { n=split($i,A,":"); if (length(A[2]) && n==2) printf "%s -- %s\n",A[1], A[2] ; }} ' b.txt
LAN1 -- X.X.X.X/XX
LAN2 -- X.X.X.X/XX
LAN1 -- X.X.X.X/XX
LAN2 -- X.X.X.X/XX

おすすめ記事