
次のような出力を生成するログ ファイルがあります:
[+] [1.1.1.1] LOG HERE
ログから IP を抽出して、IP のみをリストする「クリーン」ファイルに送信する方法を知りたいです。
答え1
、でawk
テスト済みGNU Awk 4.1.3
、他のバージョンでも動作しないかどうかは不明
$ cat ip.txt
[+] [1.1.1.1] LOG HERE
$ awk -F'[][]' '{print $4}' ip.txt
1.1.1.1
-F'[][]'
入力フィールドの区切り文字を または に設定[
する]
{print $4}
4番目のフィールドを印刷する
ではsed
、入力ファイルがサンプルのような一貫したパターンを持っていると仮定します。
$ sed 's/.*\[//; s/].*//' ip.txt
1.1.1.1
s/.*\[//
[
行の先頭から行の最後まで削除しますs/].*//
変更された行から、]
行の最初から最後まですべてを削除します