我有一個使用 bash 腳本處理的 html 文件,並且想要刪除空表。該檔案是從 sql 語句產生的,但在未找到記錄時包含表頭。我想刪除沒有找到記錄的標題。
<table border="1"> <caption>Table with data</caption> <tr> <th align="center">type</th> <th align="center">column1</th> <th align="center">column2</th> <th align="center">column3</th> <th align="center">column4</th> </tr> Data rows exists here </table> <table border="1"> <caption>Empty Table To Remove</caption> <tr> <th align="center">type</th> <th align="center">column1</th> <th align="center">column2</th> <th align="center">column3</th> <th align="center">column4</th> <th align="center">column5</th> <th align="center">column6</th> <th align="center">column7</th> </tr> </table> <table border="1"> <caption>Table with data</caption> <tr> <th align="center">type</th> <th align="center">column1</th> <th align="center">column2</th> <th align="center">column3</th> <th align="center">column4</th> </tr> Data rows exists here </table>
我嘗試使用 grep 和 sed 的組合來刪除空表。當表格包含相同數量的列時,我能夠完成此任務。我現在遇到了一些問題,因為我的表格的列數不同。
當表具有相同數量的列時,我能夠根據標題進行循環,進行計數,然後刪除。由於列數不同,這不起作用。
像這樣,使用 xmlstarlet 和 xpath:
要在
sed -i
等位置進行編輯,請使用沒有解釋,但不要使用
sed
或regex
來解析HTML/XML