HTMLファイルからいくつかの行を削除する方法

HTMLファイルからいくつかの行を削除する方法

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>
    しかし、日付と時刻の文字列は各行ごとに異なります!
  • ファイルの末尾には、
    日付と時刻を含む1行だけが含まれています。 [2021-08-08 14:16:54 UTC]

セキュリティ上の理由でファイル全体を公開できません。

私はITプロフェッショナルでもLinuxプロフェッショナルでもありませんが、
多様でトリッキーなタスクを実行できます。

ベストアンサー1

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>

おすすめ記事