2014-11-20 7 views
2

대용량 텍스트 파일을 가지고 있으며 길이가 6 자 미만인 모든 줄을 제거하려고합니다. 마지막 일과 4 일이 작동하지해야하는 이유UltraEdit : n 및/또는 r을 사용하여 특정 길이의 모든 줄 삭제

^.{0,5}\n\r$ -- string not found 

^.{0,5}\n\r -- string not found 

^.{0,5}$  -- leaves blank lines 

^.{0,5}$\n\r -- string not found 

^.{0,5}$\r  -- leaves blank lines 

^.{0,5}$\r\n -- **worked** 

내 질문입니다 -

나는 다음 검색 문자열 (펄 정규 표현식)를 시도? 왜 5 번째 줄은 공백으로 남겨 두어야합니까?

감사합니다.

+0

UltraEdit은 ** DOS **, ** UNIX **, ** MAC **을 사용하는 활성 파일의 주 응용 프로그램 창 하단에있는 상태 표시 줄에 줄 종결 자 유형을 나타냅니다. 상태 표시 줄에이 표시에 대한 자세한 정보가있는 UltraEdit 포럼 주제 [상태 표시 줄의 DOS/UNIX/MAC 행 종결 자 표시] (https://www.ultraedit.com/forums/viewtopic.php?f=7&t=15214)를 참조하십시오. 그리고 [회선 기제자에 대한 UE 심볼 설명] (https://www.ultraedit.com/forums/viewtopic.php?f=3&t=12016)을 살펴보십시오. – Mofi

답변

1

^.{0,5}$\n\r^.{0,5}$\r\n과 같지 않습니다.

  • \n\r은 줄 바꿈 다음에 캐리지 리턴이옵니다.

  • \r\n은 캐리지 리턴 다음에 라인 피드를 사용합니다 - 인기있는 line ending combination 문자입니다. 특히 \r\n은 MS-DOS 및 Windows 운영 체제 제품군에서 사용됩니다. 여러 모드에서

+0

모든 텍스트 파일이이 순서를 따릅니다? – chribonn

+1

DOS/Windows는 전통적으로 CR/LF ('\ r \ n')이었고 유닉스 시스템은 단순한 LF ('\ n')였습니다. OS X 이전의 Mac은 베어 CR ('\ r')을 사용했습니다. 나는 LF/CR ('\ n \ r')을 사용하는 시스템을 전혀 알지 못한다. – tomlogic

+0

@tomlogic [Wikipedia의 Newline 기사] (http://en.wikipedia.org/wiki/Newline)에 따르면 Acorn과 RiscOS는 특정 응용 프로그램에서이를 사용했습니다. –

1

, ^도 줄 바꿈 후 일치시킬 수 있습니다 문자열 및 의 시작과 일치하는 메타 문자입니다. 이 (정규식의 다른 부분에 의존 할 수있는 경우

  \r\n 
     ^^
here ----+-or-+ 

또는

  \n 
     ^^
here ----+-or-+ 

$

이 줄 바꿈 전에 일치하려고합니다 :

마찬가지로, $이 너무 문자열의 끝과 일치).

당신은 문자열 옵션 연속 바꿈의 끝과 일치합니다이 정규식

^.{0,5}$(\r?\n)*처럼 유리하게 그것을 사용할 수 있습니다.