ログファイル呼び出しのIPアドレス全体を抽出するのに問題があります。
ファイルの行は次のとおりです。
[2016-11-10 11:22:42] お知らせ[24518] chan_sip.c: "62.210.189.39:6584"に対する"100"登録失敗 - 間違ったパスワード
'
間のIPアドレスのみが必要です。:
以下は、IPを抽出しようとしたものです。
sed -e "/failed[[:space:]]for[[:space:]]'*.*.*.*:*'/,/[[:space:]]-[[:space:]]Wrong[[:space:]]Password/p" full > output.txt
ベストアンサー1
非常に基本的な解決策は次のようになります。cut
cut -d \' -f 4 < full | cut -d : -f 1 > output.txt
62.210.189.39
この内容をいくつかの行でフィルタリングしたいかもしれないので、Wrong Password
ここでもいくつかがあります。
grep 'Wrong Password' full | cut -d \' -f 4 |cut -d : -f 1 > output.txt
これは少し複雑なバージョンです。sed
sed -e "s/.*failed for '\([0-9\.]*\):.*/\1/" full > output.txt
グループ化を使用した括弧内のIPアドレスの抽出
ただ楽しんで一つ作ってみましたperl
perl -n -e "/failed for '([\d.]+):/ && print \$1 . \"\n\"" full > output.txt
これもgrep
私に役立つ質問の説明のコマンドです。
grep -oP '(\d{1,3}\.{1})+\d{1,3}' full > output.txt