Linux SSHセキュリティログでPIDをフィルタリングする方法は?

Linux SSHセキュリティログでPIDをフィルタリングする方法は?
  Aug 12 01:30:26 server.example.com sshd[19486]: Failed password for root from X.X.X.X port 50528 ssh2
  Aug 12 01:30:26 server.example.com sshd[19486]: Received disconnect from X.X.X.X port 50528:11: Bye Bye [preauth]
  Aug 12 01:30:26 server.example.com sshd[19486]: Disconnected from X.X.X.X port 50528 [preauth]
  Aug 12 01:30:28 server.example.com sshd[19491]: Failed password for root from X.X.X.X port 59628 ssh2

"/var/log/secure"から抽出されたサンプルLinux SSHログファイルがあります。 PID(この場合は19491と19486)をフィルタリングしたいです。 Bashを使用してどのようにこれを達成できますか?

答え1

awkを使用してください:

awk -F '[][]' '{print $2}'  /var/log/secure
  • -F '[][]'開くと閉じる中括弧として使用されるファイル区切り記号
  • $2 2番目のフィールドを検証します。

答え2

これは少し不満ですが、誰かがより短いバージョンを投稿できることを望みました。 sedコマンドを使用して文字「[」と「]」を空白に変更し、awkコマンドを使用して6番目のフィールドを印刷しました。

# cat /var/log/secure | sed 's/\[/ /g' | sed 's/\]/ /g' | awk ' {print $6}'
19486
19486
19486
19491

関連情報