GREP - 搜索特定的字符串向后搜索

时间:2018-06-14 13:52:07

标签: linux bash curl grep

我想用grep搜索file.txt来找到以。结尾的url。 " .DOC&#34 ;.当它找到.doc时,我想让grep倒退并找到" http://"在该字符串的开头。

输出为http://somesite.com/random-code-that-changes-daily/somefilename.doc

此页面上只有1个.doc网址,因此多个搜索结果不应成为问题。

请原谅,我是新手。我确实找到了答案,但搜索了1个小时,再也找不到了。我愿意阅读和学习,但我认为我没有使用正确的搜索词来表达我想做的事情。谢谢。

2 个答案:

答案 0 :(得分:2)

您还可以搜索http://并在其后面的某处包含.doc打印该行:

grep 'http://.*\.doc' file.txt

如果您只想打印匹配的部分,请使用-o选项(如果您的grep版本支持它)。

答案 1 :(得分:1)

您可以使用regular expressions

使用标记^,您可以指明要查找的行的开头。

使用标记$,您可以指明要查找的行的结尾。

然后,您可以执行类似

的操作
grep '^http:\\' \ '.doc$' file.txt

grep '^http://\|.doc$' file.txt

或不使用正则表达式,但只使用带有通配符的匹配模式,如@choroba所示:

grep 'http://.*\.doc' file.txt