
에서는 캐리지 리턴과 줄 바꿈이 포함된 패턴을 less
사용하여 검색할 수 있습니까 ? /나는 당신의 패턴이 다음을 사용하는 줄로 끝날 수 있다는 것을 알고 있습니다 $
.Less 검색에 개행 문자를 어떻게 포함하나요?), 하지만 여러 줄에 걸쳐 있는 텍스트를 일치시키려면 패턴이 필요합니다.
를 시도했지만 \n
해당 n
문자만 검색합니다.
답변1
less
의 검색 기능은 한 번에 하나의 개행 구분 라인에서 작동하기 때문에 라인 경계를 넘어 일치하는 것은 불가능합니다 . 이는 시스템 정규식 구현(GNU, POSIX, PCRE 등)에 관계없이 적용됩니다.
메인라인 개발을 위한 공식 소스 저장소를 찾을 수 없다는 점에 유의하십시오. less
, 그러나 여기서 코드 검토를 위해 다음 링크는 FreeBSD contrib 트리에서 가져온 것입니다.
보다search.c:검색_범위()검색 작업의 구현을 위해. 그 안의 루프는 다음을 호출합니다.line.c:forw_raw_line()개행으로 구분된 다음 콘텐츠 블록을 검색합니다. 해당 블록은 다음으로 전달됩니다.match.c:match_pattern()검색 패턴(정규식)이 실행되는 곳입니다.
여러 줄에 걸쳐 일치시키려면 다른 도구를 사용해야 합니다. 한 가지 옵션은 편집기를 열고 다른 사람이 제안한 대로 검색 기능을 사용하는 것입니다. v
를 눌러 편집기를 호출할 수 있습니다 less
.
답변2
에서 이를 수행하는 방법을 잘 모르지만 less
에서 동일한 작업을 수행할 수 있습니다 vim
.
http://vim.wikia.com/wiki/Search_across_multiple_lines
/PATTERN1\\_.\\{-}PATTERN2
원자는 \\_.
줄 끝을 포함한 모든 문자를 찾습니다. 다중은 \\{-}
가능한 한 적은 수와 일치합니다.
답변3
less
은 정규식 구문을 사용하고 ed
있으며 불행히도 여러 줄 일치를 지원하지 않습니다.
나는 그것을 찾거나 적어도 이 구문 비트가 다음에서 사용되었는지 알아보기를 바랐습니다 less
.
RE_DOT_NEWLINE 이 비트가 설정되면 모든 문자 일치 연산자는 개행과 일치합니다. 이 비트가 설정되어 있지 않으면 설정되지 않습니다.
따라서 .+
패턴을 사용하여 개행 문자를 일치시킬 수 있습니다. 하지만 그렇지 않습니다.