如何为多个唯一值对文件进行grep?

如何为多个唯一值对文件进行grep?,grep,Grep,我有一些防火墙日志,我想找到多个唯一的值。我需要在/var/log/iptables中找到源IP和目标端口的每个独特组合,它们是这种格式的 SRC=123.123.123.123 DPT=137 所以,如果源IP 123.123.123.123在多个端口上多次出现,我希望看到,但是,对于每个SRC/DPT组合,只出现一次 谢谢 此awk解决方案可能会有所帮助。第一个awk命令将每对连续的SRC和DPT行组合成一行。该命令的输出随后通过管道传输到第二个awk命令,该命令提供唯一的输出,保留原始顺

我有一些防火墙日志,我想找到多个唯一的值。我需要在/var/log/iptables中找到源IP和目标端口的每个独特组合,它们是这种格式的

SRC=123.123.123.123
DPT=137
所以,如果源IP 123.123.123.123在多个端口上多次出现,我希望看到,但是,对于每个SRC/DPT组合,只出现一次


谢谢

此awk解决方案可能会有所帮助。第一个awk命令将每对连续的
SRC
DPT
行组合成一行。该命令的输出随后通过管道传输到第二个awk命令,该命令提供唯一的输出,保留原始顺序

awk '/^SRC|^DPT/{ORS=$0 ~ /^SRC/?" ":"\n"; print}' file.* | awk '!a[$0]++'
如果每行存在多个
SRC
DPT
条目,则应采用以下方法

grep -oE 'SRC=[[:digit:].]+[[:space:]]+DPT=[[:digit:].]+' file.txt | awk '!a[$0]++'
您可以尝试“grep AND”,参见链接中的示例:

没有…我创建了一个测试文件,其中SRC=123.123.123 DPT=137 SRC=123.123.123.123 DPT=137 SRC=123.123.123.123 DPT=137 SRC=123.123.123 DPT=137 SRC=123.123.123.1 DPT=137 SRC=123.123.12.23 DPT=17 SRC=123.123.12 DPT=13everything@Gigahert,你介意把那个测试文件片段贴到你原来的问题上吗?@gighert,又加了一个option@Gigahert,很高兴知道!当你有机会的时候,请