【问题标题】:Parse text from this webpage in bash在 bash 中解析来自该网页的文本
【发布时间】:2013-01-02 16:57:25
【问题描述】:

我想写一个bash脚本,可以解析android appstore中应用的版本号。例如这个应用程序,https://play.google.com/store/apps/details?id=com.alphonso.pulse&hl=en

如何从页面右侧的当前版本标题中获取值“3.0.6”?

【问题讨论】:

  • 这是3.0.6的xpath://*[@id="details-tab-1"]/div[1]/dl/dd[3]。您需要找到一种方法来解析网页,并使用 html 解析 regex is not your friend
  • 如果我得到页面怎么办?然后我可以匹配这条线对吗? Current Version:</dt><dd itemprop="softwareVersion">3.0.6</dd>

标签: regex bash parsing curl sed


【解决方案1】:
$ site=https://play.google.com/store/apps/details?id=com.alphonso.pulse

$ curl -s $site | sed -rn 's/.*(Current Version:)[^0-9]*([0-9.]+).*/\1\2/p'
Current Version:3.0.6 

$ curl -s $site | sed -rn 's/.*Current Version:[^0-9]*([0-9.]+).*/\1/p'
3.0.6

【讨论】:

  • 这对我不起作用。我得到sed: 1: "s/.*(Current Version:)[ ...": \1 not defined in the RE,然后是很多html
  • 我猜你正在运行OSX,然后尝试sed -En 's/.*(Current Version:)[^0-9]*([0-9.]+).*/\1\2/p'
  • 如果我想排除“当前版本:”我将如何修改它?抱歉..好久没用过sed了。
  • 给你sed -rn 's/.*Current Version:[^0-9]*([0-9.]+).*/\1/p'我很感激+1。
猜你喜欢
  • 2012-04-20
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-31
相关资源
最近更新 更多