我花了整整一个下午试图解决这个问题,我想你们可能会在5分钟内知道答案。
我需要在这样的文件中列出字符串的出现次数。
寻找(0到多数)(az,AZ,0-9,_, - ),然后是CHRIS或DAVE,然后是(0到很多)(az,AZ,0-9,_, - )
所以对于这样的文件:
eader>fooCHRISbar</header>
madeup>DAVE123 more stuff after space
more stuff hereCHRISDAVE</done>
blah CHRIS.internet.com</done>
将返回
fooCHRISbar
DAVE123
hereCHRISDAVE
CHRIS.internet.com
..基本上它正在寻找所有出现的CHRIS和DAVE,包括周围的文字(一个字符,下划线或短划线一直到&lt;或空格或其他东西
答案 0 :(得分:1)
您需要在第二个字符类条件中添加.
。这样它就匹配字符串CHRIS.INTERNET.COM
,
$ grep -oP '[\w-]*(?:CHRIS|DAVE)[\w.-]*' file
fooCHRISbar
DAVE123
hereCHRISDAVE
CHRIS.internet.com