아니면 sed를 사용하여 삭제하는 방법은 무엇입니까?

아니면 sed를 사용하여 삭제하는 방법은 무엇입니까?

나는 성공적으로 사용합니다:

s/^[[:space:]]*<[/]*tr.*>//

<tr>또는로 시작하는 줄을 변경 </tr>하고 해당 레이블을 제거합니다.

그런데 막상 사용하려고 보니

s/^[[:space:]]*<[/]*td.*>//

삭제 <td>또는 </td>s, s만 삭제하고 s 는 삭제 <td>하지 않음</td>

현재 출력:

${url_reset}</td>
</td>

open</td>
${url_3_step_minimal_foundation}</td>
</td>

assertVisible</td>
${css_zip_code}</td>
</td>

답변1

이것을 시도해 보셨나요:

sed 's/<[/]*td.*>//' file_name

답변2

사용

s%</*td.*>%%

피할 필요성을 피하는 효과적인 방법이기도합니다.[\]

답변3

sed 's#^[[:space:]]*</\{0,1\}td.*>##'

어쩌면 더 안전할지도

sed 's#^[[:space:]]*</\{0,1\}td[^>]*>##'
  • 다른 구분 기호 사용(피하려면 이스케이프 /)
  • /그 이후에는 최대 1개까지 <허용 됩니다.td
  • 안전 버전에서는 먼저 >중지 됩니다.td

답변4

당신은 또한 시도할 수 있습니다 sed 's/<\/\?[^>]\+>//g'

태그가 포함된 모든 항목이 삭제됩니다.

관련 정보