sed命令从HTML中提取文本
我正在使用curl获取页面的源代码,并希望从特定标记中提取文本 文本位于唯一标记之间:sed命令从HTML中提取文本,html,text,curl,sed,extract,Html,Text,Curl,Sed,Extract,我正在使用curl获取页面的源代码,并希望从特定标记中提取文本 文本位于唯一标记之间: href="http://www.website.com/some/unique/page.php?q=xyz">TEXT</a> 其中模式是我尝试过的许多正则表达式模式之一,其中之一: href="http://www.website.com/some/unique/page.php?q=xyz">\(.*\)</a> href=”http://www.website
href="http://www.website.com/some/unique/page.php?q=xyz">TEXT</a>
其中模式是我尝试过的许多正则表达式模式之一,其中之一:
href="http://www.website.com/some/unique/page.php?q=xyz">\(.*\)</a>
href=”http://www.website.com/some/unique/page.php?q=xyz">\(.*\)
但由于某些原因,我无法让它工作。我要么得到完整的页面源代码,要么什么都没有(取决于我使用的模式)
非常感谢您的帮助。假设您想要的输出只是
文本
,这将与您提供的输入一起工作:
sed 's/^.*>\([^<]*\)<.*$/\1/'
我可能应该用独特的“元素”来代替,因为我很匆忙。是的,只是文本。那么你想在URL中键入“unique”一词吗?源代码比我提供的文本多。我想从标记A中提取“文本”,其中href=”“,就像我上面提供的模式一样。这将是任何html标记,对吗?我上面提供的一个元素怎么样?键是
-n
,默认情况下不打印任何内容,修饰符是p
,用于打印被替换的行。@nio现在只输出文本
,如果该行包含关键字http:
,后跟/unique//code>。如果这不够具体,那么只需在第一对未转义的/
之间放入您想要限制的任何模式,并转义模式文本中的任何/
。不幸的是,与s
命令不同,在该命令中,您可以使用任何您想要的分隔符,范围字段必须使用/
,我不得不对其进行一些调整,但我想到了这个主意。谢谢
sed 's/^.*>\([^<]*\)<.*$/\1/'
sed -n '/http:.*\/unique\//s/^.*>\([^<]*\)<.*$/\1/p'