-1
我想通過Bash使用sed或awk解析來自網站的數據(隨時改變我的方向來處理數據)。通過Bash解析表中的數據或數據
下面是一段代碼示例。
<tbody>
<tr>
<td class="text-left">111</td><td class="text-center">
<a href="/path1.htm">AAA</a>
</td><td class="text-center">
<a href="/path2.htm" class="tp-link-policy">BBB</a>
</td><td class="text-center">
Updated October, 2016
</td>
</tr><tr>
<td class="text-left">CCC</td><td class="text-center">
<a href="/path3.htm">
.
.
.
.
</tr>
</tbody>
通常當我在PHP中使用的preg_match我有換行符沒有問題,但在擊我需要徹底改變我的正則表達式的想法。你是否建議首先準備數據以供sed和awk讀取,以刪除所有換行符,並根據我希望使用sed或awk的數據結構以不同的方式重新創建它們?
例如,我會爲每個<tr>
創建一個換行符,所以結果如下所示?我是對的還是我應該離開這種想法?這會起作用,但我不喜歡操縱這樣的數據。
<tbody>
<tr><td class="text-left">111</td><td class="text-center"><a href="/path1.htm">AAA</a></td><td class="text-center"><a href="/path2.htm" class="tp-link-policy">BBB</a></td><td class="text-center">Updated October, 2016</td></tr>
<tr><td class="text-left">CCC</td><td class="text-center"><a href="/path3.htm">....</tr></tbody>
輸出應該是,例如:
111|AAA|BBB|Updated October, 2016
您的預期產出是多少? – Inian
如果您想對HTML做任何有用的操作,請不要使用基於行的文本處理工具,例如awk和sed。 –
對於命令行HTML解析,您可以查看「html2」(來自「xml2」包)或「hxpipe」及相關函數(來自「html-xml-utils」包)。他們都大致做你想做的事情。 –