我需要以下输入的regexp

echo "1280@lic1 1728@lic1 [email protected] 1924@lic1"| grep -Po 'regexp'

我希望输出为不包含1280的单词,如下所示
1728@lic1 1924@lic1

最佳答案

您可以使用此lookahead和lookbehind正则表达式:

echo "1280@lic1 1728@lic1 [email protected] 1924@lic1"| grep -Po '(?<=\s|^)(?!\S*1280)\S+'

1728@lic1
1924@lic1

(?<=\s|^)断言在我们的匹配之前有一个空格或行首
(?!\S*1280)断言单词中没有
如果要从此输出中删除换行符,请将结果管道化到1280

关于regex - grep不匹配的port @ server,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38012183/

10-12 18:54