2014-01-23 2 views
1

현재 grep 찾기/바꾸기와 함께 TextWrangler (mac)를 사용하고 있지만 다른 편집기 또는 명령 줄 도구를 사용하는 것이 행복 할 것입니다.여러 개의 하위 패턴을 찾고 textwrangler grep을 사용하여 여러 줄의 백본을 사용하여 바꿉니다.

는이 같은 구조 (예, 각 라인의 시작 부분에 공간이) 텍스트 파일이 있습니다

Reference 1 - This is a sentence with a period. And this exclaims! So does this one! 
Reference 2 - This questions? And this, this one responds. But this YELLS! 

을 그리고 난 참조를 유지하지만,로 각 문장을 깰 필요는 이 같은 자신의 라인 - 그렇지 않으면

Reference 1 - This is a sentence with a period. 
Reference 1 - And this exclaims! 
Reference 1 - So does this one! 
Reference 2 - This questions? 
Reference 2 - And this, this one responds. 
Reference 2 - But this YELLS! 

가 나는 그것이 기준이와 마지막 문장 (복사를 계속 얻을 수는/그 이유는 마지막에 휴식이, 거기에 개행 문자를 대체 문서의 나머지 부분과 일치했습니다. t) :

^([^-]+ -\s+)(?:([^.!?]+?[.!?]))(([^.!?]+?[.!?])+?)$  

바꾸기는 다음과 같이이다 :

\1\2 
\1\3 

을 그리고 그 결과는 다음과 같다 :이 여러 번 실행하는 경우, 이제까지 분리하지 않는

Reference 1 - This is a sentence. 
Reference 1 - And this exclaims! So does this one! 

Reference 2 - This questions? 
Reference 2 - And this, this one responds. But this YELLS! 

다른 두 문장은 새로운 줄로. 하지만 다른 줄을 추가하면 교체 :

\1\4 

가 그럼 난 결과로이 얻을 :

Reference 1 - This is a sentence. 
Reference 1 - And this exclaims! So does this one! 
Reference 1 - So does this one! 

Reference 2 - This questions? 
Reference 2 - And this, this one responds. But this YELLS! 
Reference 2 - But this YELLS! 

내 희망이 매우 간단하고 난 그냥 스위치/수정을 놓치고 있다는 것입니다 /기타.

한 번에 한 문장 만 쓸 수 있다면 다른 청소 작업을해도 상관 없습니다.

아이디어가 있으십니까?

Search: 
    ^([^-]+-\s+)(.*[.!?]) *(.*[.!?]) 

Replace: 
    \1\2 
    \1\3 

내가 몇 번을 통해 그것을 실행했지만, 당신의 목표 패턴과 일치하는 것 같았다 :에 대해 무엇

답변

2

.

+0

시도한 후에 나는 똑같은 것을 얻었다. 'TextWrangler의 GREP이 아닌 욕심 매칭을 지원하므로 사용자가 사용할 수 있습니다 (. +? [.!?])',하지만이 같은 결과에 내려 올 것으로 보인다. – usr2564301

+0

완벽한 솔루션! 감사!!! 더 일찍 돌아 오지 못해서 미안해. –

관련 문제