2011-04-22 6 views
1

html 파일에서 다음 자바 스크립트를 제거하고 싶습니다.html에서 특정 자바 스크립트 제거

sed '/<script type="text\/javascript"/,/<\/script>/d' 

을하지만 모든 자바 스크립트를 제거합니다 :

<script src="text/javascript> 
alert('hello'); 

})(); 

</script> 

<script src="text/javascript> 
alert('hello'); 
} catch(err) {}</script> 

http://www.cyberciti.biz/faq/sed-howto-remove-lines-paragraphs/를 읽어 보면 내가 사용할 수 있습니다.

내 특정 요구 사항은 자바 스크립트 내가 나오지도 사용할 } catch(err) {}</script>

})(); (new line)</script>와 다른 결말로 끝나는 하나, 그렇지 않으면 가능 그때는 스크립트를 통해 실행할 수 있도록 나오지와 유사한 어떤 프로그램입니다.

시간을 내 주셔서 감사합니다. 그것은 제거

+0

그것의 이미를 제거 뭐죠 포인트를로드 조건을 만족하는 경우 패턴 영역을 제거? – locrizak

+0

의도적으로'src' 속성에서 닫는 큰 따옴표를 생략 했습니까, 아니면 질문에 오타가 있었습니까? –

+0

이것은 내가 만든 샘플 질문 일뿐입니다. – Amol

답변

0

사용 awk 또는 원하는

awk -vRS="</script>" '/<script/ { if(/}\)\(\);|catch\(err\)/) { gsub(/script.*/,"");} }1' file 
0
sed '/text\\/javascript/{:a;N;/<\/script>/!ba;s/.*})();\n\n<\/script>|.*} catch(err) {}<\/script>//}' 

의 프로그래밍 언어는 모든 자바 스크립트 블록은 })(); (new line)</script> 또는 } catch(err) {}</script>로 끝납니다.

약간의 explaination :

  • /텍스트/자바 스크립트/하십시오 : 레이블
  • N를 만듭니다 태그가 text/javascript
  • 포함에서 블록이 시작 읽기 패턴 공간의 다음 줄
  • /< \ script> /! ba : 그것은 lable가 a
  • S/패턴 //에 가까운 태그 지점이 아니라면 : 그것은
관련 문제