2014-10-22 4 views
0

솔루션을 찾기 위해 많이 보았지만 찾지 못했습니다. sed을 사용하여 모든 태그를 제거하는 방법을 알고 있지만 비어 있거나 탭이나 공백이 있고 태그를 명시 적으로 제거하는 HTML 태그 만 제거해야합니다. 예를 들어 :sed를 사용하여 파일에서 빈 HTML 태그를 제거하십시오

<p></p> or <p> </p> 

나는 그것이 제대로 작동하지만 모든 태그를 제거하지 않는, 모든 HTML 태그를 제거하려면 다음 명령을 사용했다.

sed -e 's/<[^>]*>//g' myfile.html 

동일한 명령이 here으로 사용됩니다. 친절하게 도와주세요.

답변

1

아래의 sed 명령을 사용하여 빈 태그 만 제거 할 수 있습니다.

펄을 통해
sed 's/<[^\/][^<>]*> *<\/[^<>]*>//g' file 

,

perl -pe 's/<([^<>]*)>\s*<\/\1>//g' file 
+0

감사합니다! 태그가 항상 ''처럼 닫히지 않는 문제가 하나 더 있는데, 일부 태그는' '처럼 작성됩니다. 이 명령은 여전히이 태그에 적용됩니까? – Hammadzafar

+0

다음이'sed -r 's/<[^\/][^<> * * * <\/?[^<> * \ /?> // g'파일 ' –

+0

감사합니다 사람을 사용하십시오! 작동합니다 – Hammadzafar

1
sed -r 's/<([a-zA-Z0-9]+)>[ \s\t]*<\/\1>//g' file 
+0

요구 사항을 변경 한 후에는이 기능이 작동하지 않습니다! :-) @Avinash가 답변을 제공 한 이래로, 나는 거기에 그것을 남겼다 :-) –

관련 문제