我有url mydomain.com/get
在那个URL上我使用index.html
。
index.html
看起来像这样:
<!DOCTYPE html>
<body>
12345
</body>
</html>
我想使用bash返回 12345
。我正在通过詹金斯(Jenkins)这样做,所以我无法安装特定的内容。我在想格雷普?
curl mydomain.com/get | grep ???
注意:您的HTML看起来不像有效的XML。我对此进行了更改:
<!DOCTYPE html>
<html>
<body>
12345
</body>
</html>
使用XMLSTARLET(XML)您现在可以用
提取身体元素的值$ curl mydomain.com/get | xml select -t -v /html/body
12345
带有支持进程替代的外壳(例如bash),如果您有xmllint
,则可以写出以下内容:
echo 'cat //*[local-name()="body"]/text()' | xmllint --shell <(curl mydomain.com/get) | grep -v '^/ >'
请注意,这将仅返回<body>
标签中的文本值。如果您有一个更复杂的页面,则需要一个更高级的命令。
尝试 sed -n '/<body>/,/</body>/p'
。这应该在开始标签和终端标签之间找到文本。