[英]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
。 這里有一個很棒的解釋:
將編程語言與正確的HTML或XML解析庫一起使用。
如果您不想遵循良好做法,也不介意使用一些不良做法,請編輯您的問題以明確指出。
如果您的HTML是有效的XML,也可以嘗試XSLT。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.