从html:BASH提取子字符串

从html:BASH提取子字符串,html,string,bash,extract,Html,String,Bash,Extract,我需要从youtube的index.html中提取视频名称。我已经能够将文件分成小块,每个小块包含一个视频列表,但是我似乎无法提取视频标题。我的教授提供了以下命令,但在这种情况下,我似乎无法让它工作 number=`expr "$s" : ".*\/\([0-9,]*\)\/"`; echo $number # will print 250,4211 虽然我不能完全确定,但我认为我在使用这种方法时遇到了困难,因为视频标题和周围文本之间没有空格。以下是我需要从中提取标题的示例: <li c

我需要从youtube的index.html中提取视频名称。我已经能够将文件分成小块,每个小块包含一个视频列表,但是我似乎无法提取视频标题。我的教授提供了以下命令,但在这种情况下,我似乎无法让它工作

number=`expr "$s" : ".*\/\([0-9,]*\)\/"`; echo $number # will print 250,4211
虽然我不能完全确定,但我认为我在使用这种方法时遇到了困难,因为视频标题和周围文本之间没有空格。以下是我需要从中提取标题的示例:

<li class="video-list-item "><a href="/watch?v=9BbgvlgDQMg&amp;feature=g-sptl&amp;cid=inp-hs-edt" class="video-list-item-link yt-uix-sessionlink" data-sessionlink="ei=CMzmroaB5bICFRiXIQoda3kX5g%3D%3D&amp;feature=g-sptl%26cid%3Dinp-hs-edt" ><span class="ux-thumb-wrap contains-addto "><span class="video-thumb ux-thumb yt-thumb-default-120 "><span class="yt-thumb-clip"><span class="yt-thumb-clip-inner"><img src="http://s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt="Lil&#39; Buck &quot;Golden Gateway&quot; Venice Beach California YAK FILMS Super Bowl 2012 Madonna Memphis Jookin" data-thumb="//i2.ytimg.com/vi/9BbgvlgDQMg/default.jpg" width="120" ><span class="vertical-align"></span></span></span></span><span class="video-time">3:51</span>
  • 3:51

  • 从这段文字中,我需要提取“Lil'Buck”Golden Gateway”威尼斯海滩加利福尼亚牦牛电影2012年超级碗麦当娜孟菲斯Jookin”,不带引号。

    我想在你的作业中必须使用正则表达式。。。如果不是,我会选择xml解析器

    但是如果是的话,我建议你跟我一起去


    RegexBuddy使您比以往任何时候都更容易创建执行所需操作的正则表达式,而无需任何猜测。尽管如此,您仍然需要测试您的正则表达式模式,以100%确保它们与您想要的匹配,而与您不想要的不匹配。

    您可以使用bash regex
    \n强制性回答:谢谢您的回复。你知道有没有一种方法可以像我的教授所说的那样,简单地使用“expr”命令就可以做到这一点?是的,你可以,但是使用这个工具来找到正确的reg-ex字符串更容易。谢谢,工作得很好。我真的很感谢你的帮助。现在来实施它。
    
    $ cat file
    <li class="video-list-item "><a href="/watch?v=9BbgvlgDQMg&amp;feature=g-sptl&amp;cid=inp-hs-edt" class="video-list-item-link yt-uix-sessionlink" data-sessionlink="ei=CMzmroaB5bICFRiXIQoda3kX5g%3D%3D&amp;feature=g-sptl%26cid%3Dinp-hs-edt" ><span class="ux-thumb-wrap contains-addto "><span class="video-thumb ux-thumb yt-thumb-default-120 "><span class="yt-thumb-clip"><span class="yt-thumb-clip-inner"><img src="http://s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt="Lil&#39; Buck &quot;Golden Gateway&quot; Venice Beach California YAK FILMS Super Bowl 2012 Madonna Memphis Jookin" data-thumb="//i2.ytimg.com/vi/9BbgvlgDQMg/default.jpg" width="120" ><span class="vertical-align"></span></span></span></span><span class="video-time">3:51</span>
    
    $ line="$(cat file)"
    
    $ if [[ "$line" =~ \<img.*alt=\"([^\"]*)\" ]]
    then
      echo "${BASH_REMATCH[1]}"
    fi
    Lil&#39; Buck &quot;Golden Gateway&quot; Venice Beach California YAK FILMS Super Bowl 2012 Madonna Memphis Jookin
    
    $ expr "$line" : '.*<img.*alt=\"\([^\"]*\)\".*'
    Lil&#39; Buck &quot;Golden Gateway&quot; Venice Beach California YAK FILMS Super Bowl 2012 Madonna Memphis Jookin