2012-04-12 1 views
1

많은 파일 내에서 여러 텍스트를 제거하려고합니다. 이 glob은 파일의 중간에 삽입됩니다.AWK를 사용하여 html 파일 내의 텍스트 묶음을 제거하려고합니다.

내 bash 스크립트에서 AWK를 사용하여 제거하려고합니다.

명령은 그래서입니다 : </SCRIPT>이 처음이고 마지막이다

awk '/</SCRIPT>/{p=1;print}</script>/{p=0}!p' 

.

목표는 파일에서 </SCRIPT>으로 시작하여 </script>으로 끝나는 모든 텍스트를 제거하고 상단 및 하단 html을 그대로 둡니다.

스크립트의 시작과 끝 부분에 -x와 a + x를 추가하여 실패한 부분을 확인했습니다.

awk: /</SCRIPT/>{p=1;print}/</script>{p=0}!p 
awk:      ^syntax error 

SS64가 저에게 말한다 :

AWK이 나에게 알려줍니다

다음 중 한 후 줄 바꿈을 무시합니다

둔한 ': 그래서 내가 생각

, { ? : || && do else" 

내 awk 명령에서 "<"을 분리해야하지만 문제가되지는 않습니다. 내 변수 ...

어떻게해야하나요? 그리고 왜 awk가 더 이상 불평하지 않았습니까? 당신이 시작을 제거하기 위해 노력하고 태그를 종료 한 후 사이의 모든 텍스트가 사용해야하는 경우

awk '/<\/SCRIPT>/{p=1;print} /<\/script>/{p=0}!p' 
+1

편집기에 도움말 버튼이 있습니다. 코드 블록을 4 칸 들여 쓰기 할 필요가있다. (버튼이있다.) 백틱에 인라인 코드/html을 넣어야한다. "편집 x 시간 전"을 클릭하여 내가 귀하의 게시물에 어떤 영향을 주 었는지 확인하십시오. – Mat

답변

3

당신은 일치하는 내부 /을 탈출 할 필요가

awk '/<\/SCRIPT>/{p=1}; !p; /<\/script>/{p=0}' file 
+0

WHOA 빨리! –

2

:

awk: /</SCRIPT/>{p=1;print}/</script>{p=0}!p 
awk:^syntax error  ^syntax error 
관련 문제