Sort
排序的 HTML 表格
我需要一種非常快速簡便的方法來對 HTML 表格進行排序。表格行包含應保留在其相應行中的圖像。我嘗試將我的 HTML 粘貼到 Libre Office calc 中,但圖像沒有粘貼到行中,因此無法進行排序。
順便說一句,我不想要一個可排序的表。我想要一個排序表。完成後,我只想要一個可以粘貼到部落格頁面的純 HTML 表格,但我希望表格中的項目已排序。
我想從乾淨的 HTML 表格開始,將其粘貼到應用程序中,對錶格進行排序並獲取新的 HTML 原始碼,而無需添加任何樣式或垃圾。看起來很簡單,但我找不到解決方案。
我希望排序的表格範例:
<html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title></title> </head> <body> <table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"> <a href="http://example.com/images/a"> <img src="http://example.com/images/a_thumb.jpeg" alt="image of a"> </a> </td> <td style="vertical-align: top;">a<br> </td> </tr> <tr> <td style="vertical-align: top;"><a href="http://example.com/images/f"> <img src="http://example.com/images/f_thumb.jpeg" alt="image of f"> </a> </td> <td style="vertical-align: top;">f<br> </td> </tr> <tr> <td style="vertical-align: top;"><a href="http://example.com/images/c"> <img src="http://example.com/images/c_thumb.jpeg" alt="image of c"> </a> </td> <td style="vertical-align: top;">c<br> </td> </tr> <tr> <td style="vertical-align: top;"><a href="http://example.com/images/b"> <img src="http://example.com/images/b_thumb.jpeg" alt="image of b"> </a> </td> <td style="vertical-align: top;">b<br> </td> </tr> </tbody> </table> <br> <br> </body> </html>
您可以使用Ex 編輯器(Vi/Vim 的一部分),如以下 shell 命令所示:
$ ex +"g/<tr/;,/tr>/join" +"/<table\_.\{-}\zs<tr/;,/table>/sort /.\{-}<a href/" +%p -scq! table.html | html2text [image of a] a [image of b] b [image of c] c [image of f] f
上面的範例使用
html2text
命令行工具從標準輸入顯示解析的 HTML(如果需要,安裝)。要將排序表保存到新文件,請替換
+%p -scq!
為+'wq! sorted.html'
,因此:ex +"g/<tr/;,/tr>/join" +"/<table\_.\{-}\zs<tr/;,/table>/sort /.\{-}<a href/" +'wq! sorted.html' table.html
解釋:
+"cmd"
- 執行 Vim 命令。g/<tr/;,/tr>/join
- 連接和之間的線<tr/
(tr>
以便於排序)。/<table\_.\{-}\zs<tr/;,/table>/``<tr/
- 在第一和之間選擇內容/table>
。sort /.\{-}<a href/
- 對從 . 之後開始的行進行排序<a href/
。+%p
-列印緩衝區。-scq!
-靜默退出編輯器而不保存。在此處查看類似的範例。