我正在寻找一组HTML文件中的字符串匹配项。我正在寻找表单的所有匹配实例:
="https:// ... .mp4"
请记住,这些不是单独的一行。它们都聚在一起而没有任何空格,因此返回实际行将不起作用。
我希望GREP返回此类URL的所有分组实例。我想要这样的唯一链接输出:
="https://www.something.com/file1.mp4"
="https://www.something.com/file2.mp4"
="https://www.something.com/file3.mp4"
="https://www.something.com/file4.mp4"
这是我认为需要的搜索参数:
grep -hRo '\="https://.*\.mp4"\>' *.html
双引号和等号应该是实际搜索字符串的一部分,但是它们使我的搜索结果混乱不清,我无法弄清楚如何正确地对它们进行转义。
我正在终端的OSX上运行它。任何帮助将不胜感激。
答案 0 :(得分:2)
使用传统的正则表达式,双引号被单引号转义。您只需要转义量词+
(一个或多个)和.mp4
grep -o '="http[^"]\+\.mp4"'
使用GNU Grep中提供的PCRE,您实际上可以(无需打印)将前导/后跟等号/双引号与Lookarounds相匹配:
grep -Po '(?<==")http[^"]+\.mp4(?=")'
(?<= ... )
-向后看(?= ... )
-前瞻返回:
https://www.something.com/file1.mp4
https://www.something.com/file2.mp4
https://www.something.com/file3.mp4
https://www.something.com/file4.mp4