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>