2012-04-05 4 views
0

일부 PHP 파일에서는 "?>\s\t\n\EOF"을 바꿉니다. 나는 검색이 문제가 사용하여 발생한 모든 파일이 테스트 :파일에서 일부 문자와 EOF를 바꾸는 방법

ack "\?\>[\s\n\t]+\z" 

나는 결과를 가지고 있지만 난 단지 ?>EOF하여이를 대체 할 수 있습니다.

sed 's/?>[\n\t\s]+\z/?>/' 

당신이 몇 가지 팁이 있나요 : 나는 "나오지도"또 다른 명령을 테스트?

예 :

?> 
+0

더 명확하게하려는 것을 설명해야합니다. 필자는 PHP 닫기 마커가 들어있는 파일의 마지막 줄 뒤에 공백, 탭 및 줄 바꿈 문자를 제거하려고 시도했을 것으로 추측합니다. 그러나 명확하지 않습니다. 가지고있는 입력 파일의 예를 보여줄 수 있습니까 (최소한의 예에서는 4 줄 정도). 원하는 결과물을 보여줄 수 있습니까? 도움말에서'sed'의 대부분의 버전은 기본적으로 Perl 정규식을 인식하지 못합니다. 일부는 옵션으로 사용할 수 있습니다. –

+0

무슨 뜻입니까? 무슨 \ z? –

+0

\ s는 공백이며, \ z는 EOF입니다. – Herve

답변

1

ACK가 펄 기반 및 \의 Z 등을 인식하지 못한다 나오지된다. 펄 사용

perl -pe 's/\?\>[\s\n\t]+\z/?>\n/' 

은 또한 \의 z는 EOF하지 않습니다,하지만 z는 각 라인의 끝과 일치한다 \ 있도록 단지, 문자열의 끝. 파일 끝에 만 일치 시키려면 \ z 이외의 다른 것을 사용해야합니다.

+0

고마워, 내 연구 계속 – Herve

관련 문제