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>