在 *nix 命令行上,有grep(实现之间略有不同)。使用 GNU/grep,有一个“-m”开关在第一次匹配时停止,例如:
$ grep Test log.txt | grep -m1 'Source 192.168.0.1 Port 23 Destination 192.168.0.2 Port 23'
-10-30-123-012-031-22 Test Source 192.168.0.1 Port 23 Destination 192.168.0.2 Port 23 djlkdj
要在日志文件中搜索例如“测试”,然后只关注某些部分,我喜欢使用sed来“清理”日志文件:
$ grep Test log.txt | sed 's/.*Test/Test/;s/ djlkdj$//' | sort | uniq -c
4 Test Source 192.168.0.1 Port 23 Destination 192.168.0.2 Port 23
2 Test Source 192.168.0.1 Port 23 Destination 192.168.0.222 Port 25
4 Test Source 192.168.0.1 Port 25 Destination 192.168.0.2 Port 23
2 Test Source 192.168.5.1 Port 23 Destination 192.168.0.2 Port 23
不确定这是否是您想要的。