我正在尝试检索网页,搜索某个模式,检索该值并使用它进行一些计算。我的问题是,我似乎无法弄清楚如何在给定的字符串中搜索模式。
让我说我检索一个像这样的页面
content=$(curl -L http://google.com)
现在我想搜索我感兴趣的值,这基本上是一个html标签。
<div class="digits">123,456,789</div>
不,我确实尝试使用sed找到这个。我的尝试看起来像这样:
n=$(echo "$content"|sed '<div class=\"digits\">(\\d\\d,\\d\\d\\d,\\d\\d\\d)</div>')
我希望每次都提取该值,比如10分钟,保存并估计何时会满足124,xxx,xxx。
我的问题是我真的不知道如何保存这些值,但我想我可以自己解决这个问题。我更感兴趣的是如何检索那个子串因为我总是因为“&lt;”而得到错误。
我希望有人能够并愿意帮助我:)。
答案 0 :(得分:1)
最好使用xpath的正确解析器:
xmllint --html --xpath '//*[@class="digits"]' http://domain.tld/
但似乎您在评论中提供的示例网址不包含此类名。您可以先运行来证明:
curl -Ls url | grep -oP '<div\s+class="digits">\K[^<]+'
答案 1 :(得分:0)
最好使用@sputnick建议的正确解析器。
或者您可以尝试这样的事情:
curl -L url | perl -ne '/<div class="digits">([\d,]+)<.div>/ && {print $1, "\n"}'