2015-01-16 2 views
0

이것은 내 테스트 파일입니다. 이 파일에는 스크립트 태그 다음에 개행 문자가 있습니다. 그 캐릭터를 공백 문자로 제거하고 싶습니다. 이런 종류의 오류가 제거 될 수 있도록 쉘 스크립트를 작성하고 싶습니다.파일의 스크립트 태그에서 sed 또는 tr 명령을 사용하여 줄 바꿈 문자 제거

<html> 
<head> 
<script 
type="text/javascript" sfsf="test" src="http://test.mydomain.com/test"></script> 

</head> 
<body> 
<script type="text/javascript" src = "http://test.com/public//test"></script> 

</body> 
</html> 

출력은 다음과 같이해야한다 :

<html> 
<head> 
<script type="text/javascript" sfsf="test" src="http://test.mydomain.com/test"></script> 

</head> 
<body> 
<script type="text/javascript" src = "http://test.com/public//test"></script> 

</body> 
</html> 

내가 찾을 솔루션 sed와 스크립트 태그 뒤에 줄 바꿈 및 캐리지 리턴 및 스트립 공백을 제거하는 내 자신

cat file | tr '\n' ' ' | sed 's/> \?/>\n/g' 
+0

방법을 명확히하십시오 이 파일을 바꾸시겠습니까? – ManojP

+1

혼자서 찾은 해결책이 원하는 출력을 생성하지 못합니다. 그것은 빈 줄을 지울 것입니다.하지만 괜찮은 것 같아요. – Tiago

+0

@Tiago : 네, 맞아요. 나는 고마워하지 않았다 :) – SAC

답변

0

사용 tr .

cat file | tr -d '\n' | td -d '\r' | sed 's#</script>[[:space:]]+##g'

+2

고양이 파일 | tr -d '\ n'| tr -d '\ r''에 의해'tr -d'\ n \ r ' Cyrus

+1

+1 왜냐하면 나는 느낌 : –

+0

그것은 SAC

1

당신이 perl 사용할 수있는 경우 :

perl -n0e 's/(script)(\s+)/$1 /g; print' file 

을하거나 -n 대신 -p 사용하는 경우는 "인쇄"명령을 생략 할 수 있습니다 :

perl -p0e 's/(script)(\s+)/$1 /g;' file