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>
    하지만날짜 및 시간 문자열은 각 행마다 다릅니다!
  • 파일 끝에는
    날짜와 시간이 포함된 한 줄만 포함되어 있습니다. [2021-08-08 14:16:54 UTC]

보안상의 이유로 전체 파일을 공개할 수 없습니다.

저는 IT 전문가도 아니고 Linux 전문가도 아니지만
다양하고 까다로운 작업을 수행할 수 있습니다.

답변1

xmlstarlet을 사용하여편집하다해당 파일,값을 업데이트합니다.엑스경로 표현:

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>

관련 정보