簡體   English   中英

Sed:基於多個模式匹配來修改HTML文件中的行

[英]Sed: Modify lines in a HTML file based on multiple pattern matches

我需要弄清楚如何執行以下操作,並且想知道是否有人可以提供有關更好的sed做法,或更重要的是不好的做法的建議,這些建議將幫助我完成此任務。

基本上,我想逐行瀏覽文件並在PATTERN1上尋找匹配項。 有了匹配項后,我要查找與PATTERN2匹配的下一行。 如果我得到PATTERN2比賽,我想繼續下一場PATTERN1比賽。 如果我沒有匹配的PATTERN2,我想修改下一個出現的PATTERN3並對其進行修改。 最后,在PATTERN2或PATTERN3匹配項中修改PATTERN1的所有匹配項。

例如以下內容:

    <tr>
  <td>
<input type="text" id="record_511568" value="PATTERN1" style="width:200px">
  </td>
  <td>2001-06-29 18:38:21</td>
  <td>2014-06-29 18:38:21</td>
  <td>
    <select id="status_511568">
<option value="1">1</option>
<option value="2" selected="selected">2</option>
<option value="3">3</option>
<option value="4">4</option>
    </select>
  </td>
</tr>

我要匹配PATTERN1並檢查下一次出現的PATTERN2(1)。

然后,如果PATTERN2匹配,我想將其更改為( <option value="1" selected="selected">1</option>

如果PATTERN2不匹配,那么我要確保它與PATTERN3匹配( <option value="1" selected="selected">1</option>

通過每個PATTERN1逐步執行此操作。 基本上將大型HTML表單修改為我在列表中預先確定的值。 我可能會遇到的一些陷阱或對sed進行多模式匹配的建議。

如果要避免不良做法,請不要為此使用sed 這里有一個很棒的解釋:

RegEx匹配XHTML自包含標簽以外的打開標簽

將編程語言與正確的HTML或XML解析庫一起使用。

如果您不想遵循良好做法,也不介意使用一些不良做法,請編輯您的問題以明確指出。

如果您的HTML是有效的XML,也可以嘗試XSLT。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM