ログファイルからデータを抽出する

ログファイルからデータを抽出する

Linuxコマンドとツールを使用してファイルを解析する方法を学びたいと思います。私はgrep/awk/sedを最大限に活用する方法についていつも混乱しています。

これは特定のユースケースです。

次の文字列を含むログファイルがあります。

Config Server received a Connection Establishment with an invalid public key, closing connection. Agent Identifier: SRV3 Socket IP: 192.168.2.6
Config Server received a Connection Establishment with an invalid public key, closing connection. Agent Identifier: TESTSRV4 Socket IP: 10.1.2.3
Config Server received a Connection Establishment with an invalid public key, closing connection. Agent Identifier: SRV1 Socket IP: 192.168.2.15
Config Server received a Connection Establishment with an invalid public key, closing connection. Agent Identifier: TESTSRV2 Socket IP: 10.1.2.4

私の目標は、「エージェント識別子」の後に表示されるホスト名と各行の関連IPアドレスを抽出してtxtファイルにエクスポートすることです。最良の解決策は何ですか?

ベストアンサー1

これを行う:

$ cat file.log | awk '{ print $16, $19 }' 

次のリストが返されます。

SRV3 192.168.2.6
TESTSRV4 10.1.2.3
SRV1 192.168.2.15
TESTSRV2 10.1.2.4

目的の場所に出力をリダイレクトできます。たとえば、次のように追加します。

> hosts.text

名前付きファイルにデータを出力します。ホスト.txt

上記はすべての内容を中断(交換)します。ホスト.txt文書。ファイルの末尾にデータを追加するには>>>

おすすめ記事