【问题标题】:Grep and Regex an HTML File对 HTML 文件进行 Grep 和正则表达式
【发布时间】:2013-12-21 20:49:40
【问题描述】:

我有一个包含数千行的 HTML 文件,但有些内容重复了。

CODE=12345-ABCDE-12345-ABCDE</div>...<!--This line goes on for hundreds of characters-->

现在,该行每次都以“CODE=”开头,并且每次代码的长度都相同。以下 28 个字符可以是字母、数字或破折号。

cat mysite.html | grep "CODE="

但我想要一个正则表达式来显示 BEFORE&lt;/div&gt; 行上的所有内容

谢谢!

【问题讨论】:

    标签: html unix grep cat


    【解决方案1】:

    您可以改用cut

    cat myfile.html | cut -c 6-28
    

    这显示了每行的字符 6 - 28。这利用了CODE= 的长度以及后面的代码长度已知这一事实。

    【讨论】:

    • 感谢您的提示!这就像一个魅力:cat mysite.html | grep "CODE=" | cut -c 6-29
    • @Goodies 你不需要在这里使用catgrep "CODE=" mysite.htmlcat mysite.html | grep "CODE=" 相同。
    【解决方案2】:

    您也可以使用sed

    sed -rn 's@^(CODE=[A-Za-z0-9\-]{23})</div>.*@\1@p' file
    

    匹配任何以CODE=开头的行,后跟包含either letters, numbers, or dashes的23个字符,后跟&lt;/div&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      相关资源
      最近更新 更多