Sort

排序的 HTML 表格

  • September 15, 2017

我需要一種非常快速簡便的方法來對 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!-靜默退出編輯器而不保存。

在此處查看類似的範例。

引用自:https://unix.stackexchange.com/questions/148874