Linux 中的搜索帮助

Linux 中的搜索帮助

我对 Linux 还算是个新手,但是我花了很多时间尝试弄清楚如何筛选我的 qmail 日志文件。

此时,我想要做的是进行搜索,只输出 qmail-local-handlers 后面方括号内的内容。例如,取我的日志片段中的第一行...

(10月3日 10:17:21 125388-web2 qmail-local-handlers[18145]:[电子邮件保护]

...我希望它输出 18145。

我不确定我可以运行哪些命令来获得我想要的结果。有人能帮忙吗?

以下是我正在使用的一些示例数据,希望对您有帮助。非常感谢!

10月3日 10:17:21 125388-web2 qmail-local-handlers[18145]:[电子邮件保护]|
10月3日 10:29:14 125388-web2 qmail-local-handlers[22908]:[电子邮件保护]|
10月3日 10:29:30 125388-web2 qmail-local-handlers[23017]:[电子邮件保护]|
10月3日 10:30:58 125388-web2 qmail-local-handlers[23815]:[电子邮件保护]|
10月3日 10:31:04 125388-web2 qmail-local-handlers[23861]:[电子邮件保护]|
10月3日 12:06:52 125388-web2 qmail-local-handlers[30174]:[电子邮件保护]|
10月3日 12:07:03 125388-web2 qmail-local-handlers[30240]:[电子邮件保护]|
10月3日 12:19:05 125388-web2 qmail-local-handlers[3243]:[电子邮件保护]|

答案1

这将抓取(第一对)方括号之间的数字:

sed "s/.*\[\([0-9]\+\)\].*/\1/" logfile

答案2

你有没有尝试过:

cut -d '[' -f 2 LOGFILE | cut -d ']' -f 1

相关内容