Text-Processing

如何從 HTML 文件中刪除部分行

  • August 9, 2021

我有一個文件,events.html包含類似的行(在許多其他行中):

<td class="EventDate">2021-08-06 12:36:34</td>

其中每一行中的日期和時間字元串都不同。

在這些行中,只有 class="EventDate"

喜歡從每個這樣的行中刪除時間字元串。

附加資訊:

  • 系統是 Debian 9.13 64 位
  • 文件長 38kb
  • 大約有 100 條記錄,每條記錄都包含類似於

<td class="EventDate">2021-08-06 12:36:34</td>

日期和時間字元串在每行中不同的行!

  • 文件最後只包含一行(例如!)

日期和時間:$$ 2021-08-08 14:16:54 UTC $$

出於安全原因不能發布整個文件。

我既不是 IT 專業人士也不是 Linux Guru

,但能夠執行各種要求很高的任務。

使用 xmlstarlet編輯文件,使用x路徑表達式更新值:

xmlstarlet ed -u '//td[@class="EventDate"]' -x 'substring-before(.," ")' events.html

添加-L以就地執行編輯,而不是將結果寫入標準輸出。

前任。給定

$ cat events.html 
<table>
 <tr>
   <td>Cell A</td>
   <td class="EventDate">2021-08-06 12:36:34</td>
 </tr>
 <tr>
   <td>Cell C</td>
   <td class="OtherDate">2021-08-06 12:36:34</td>
 </tr>
</table>

然後

$ xmlstarlet ed -O -u '//td[@class="EventDate"]' -x 'substring-before(.," ")' events.html 
<table>
 <tr>
   <td>Cell A</td>
   <td class="EventDate">2021-08-06</td>
 </tr>
 <tr>
   <td>Cell C</td>
   <td class="OtherDate">2021-08-06 12:36:34</td>
 </tr>
</table>

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