Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sed命令从HTML中提取文本_Html_Text_Curl_Sed_Extract - Fatal编程技术网

sed命令从HTML中提取文本

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

我正在使用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.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'