【发布时间】:2020-08-07 07:17:15
【问题描述】:
我尝试制作一个正则表达式(重要的是它是一个正则表达式,因为我需要它用于fail2ban)以匹配何时 接收方和发送方是同一个人:
echo "from=<test@test.ch> to=<test@test.ch>" | grep -E -o '([^=]*\s)[ ]*\1'
我做错了什么?
【问题讨论】:
-
您可以使用反向引用
from=<([^\s@<>]+@[^\s@<>]+)>\s*to=<\1>并且如果支持grep -oP选项 regex101.com/r/V18mbR/1 就像echo "from=<test@test.ch> to=<test@test.ch>" | grep -oP 'from=<([^\s@<>]+@[^\s@<>]+)>\s*to=<\1>'
标签: regex linux bash shell grep