我有一个文件myfile
。我想找到包含以下模式的行:
MyWebsite/1234
或更一般
somecharactersstringswhitespaces MyWebsite / 987的 somecharactersstringswhitespaces
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
即使直觉和逻辑说这应该是好的,但它们都没有奏效。
答案 0 :(得分:2)
grep 'MyWebsite/[0-9]\+' myfile
应该有效。在你的前3个正则表达式中,你错过了/
,而在最后一个,你不应该逃过{
和}
,否则你就不错了。使用+
而不是{1,}
更简洁,grep默认使用的正则表达式版本(POSIX BRE的变体)要求对其进行转义。