我需要以下输入的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/