匹配字符串和一个或多个数字与grep

时间:2017-01-24 16:03:34

标签: regex linux grep

我有一个文件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

即使直觉和逻辑说这应该是好的,但它们都没有奏效。

1 个答案:

答案 0 :(得分:2)

grep 'MyWebsite/[0-9]\+' myfile应该有效。在你的前3个正则表达式中,你错过了/,而在最后一个,你不应该逃过{},否则你就不错了。使用+而不是{1,}更简洁,grep默认使用的正则表达式版本(POSIX BRE的变体)要求对其进行转义。