grep -P 负向前看不起作用

grep -P 负向前看不起作用

我正在尝试在文件上查找一些行。我使用正则表达式并用 grep -P 执行它,但出现错误。表达式是:[A-Za-z0-9]{6}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2} =>.*@(?!gmail.com) 我执行:grep -oP "[A-Za-z0-9]{6}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2} =>.*@(?!gmail.com)" /var/log/exim/main.log-prueba | sort | uniq | wc -l 并出现此错误:-bash: !gmail.com: event not found 您能帮我解决这个问题吗?谢谢。

答案1

Bash 在将参数传递给 grep 之前会对其进行扩展。请转义!或使用单引号。

grep -oP '[A-Za-z0-9]{6}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2} =>.*@(?!gmail.com)' /var/log/exim/main.log-prueba

或者:

grep -oP "[A-Za-z0-9]{6}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2} =>.*@(?\!gmail.com)" /var/log/exim/main.log-prueba

相关内容