我有一个文件myfile
。我想找到包含以下模式的行:
MyWebsite/1234
或更一般的
一些字符串空格我的网站/987一些字符串空格
MyWebsite
后面可以有一个或多个数字。我尝试了以下方法:
grep ".*MyWebsite[0-9]\{1,\}" myfile
grep "MyWebsite[0-9]\{1,\}" myfile
grep MyWebsite"[0-9]\{1,\}" myfile
grep -E ".*MyWebsite/[0-9]\{1,\}.*" myfile
他们都没有工作,即使直觉和逻辑说,这应该是好的。
2条答案
按热度按时间ewm0tg9j1#
grep 'MyWebsite/[0-9]\+' myfile
应该可以工作。在前3个正则表达式中,您错过了/
,在最后一个中,您不应该转义{
和}
,但除此之外您做得很好。使用+
比{1,}
更简洁,并且grep默认使用的正则表达式版本(POSIX BRE的变体)要求对它进行转义。kmpatx3s2#
设置
grep(GNU grep)3.7
溶液
分解
[[:digit:]]
字符类\
转义字符+
匹配一个或多个字符(本例中为数字)证明
结果
a bc/我的网站/1234/d ef
突出显示的模式匹配
链接