2009-07-28 3 views
6

유니 코드 텍스트 파일 (regedit에서 내 보낸 파일)이 있는데 그 파일에 특정 텍스트가있는 모든 줄을 꺼내려고합니다.Windows에서 grep 유니 코드 텍스트 파일에 대한 무료 프로그램은 무엇입니까?

나는 Grep for Windows과 findstr을 시도했지만 모두 유니 코드 인코딩을 처리하지 못하는 것 같습니다. 내 결과는 비어 있지만 -v 옵션을 사용하면 (일치하지 않는 행 표시) 결과에 각 문자 사이에 NUL이 표시됩니다.

Windows에서 유니 코드 파일에 간단한 grep을 수행 할 수있는 무료 옵션이 있습니까?

+0

사용이 발견은 FINDSTR 없습니다. – Chalky

답변

8

grepWin은 내가 원하는 곳에서 완벽하게 작동합니다. 나는 그것을 이전에 발견했으면 좋겠다!

0

은 cygwin의 옵션입니다. 어쩌면 내장 된 GREP은 시도 하나 ...

관련

+0

불행히도, 그건 내 관찰되지 않았습니다. 나는이 문제를 다루고 있으며, Cygwin GREP가 내가 시도한 첫번째 문제였다. Cygwin GREP와 UnxUtils GREP 모두 파일을 ASCII (또는 적어도 UTF-8)로 변환하면 결과를 찾은 것처럼 보입니다. – user1172763

0

체크 아웃 BareGrep보다 더 나은 작동합니다. 나는 그것이 당신이 원하는 것을 할 것이라고 생각합니다.

+0

꽤 멋진 프로그램이지만 유니 코드 텍스트로 작동하지 않는 것 같습니다. 뭔가 빠졌습니까? – jacobsee

+0

필자는 개인적으로 유니 코드로 지치지 않았지만, 판매 선전은 그렇게 할 것이라고 말했습니다. 그들은 물론 거짓말을 할 수도 있습니다. –

+0

UTF16 파일을 처리하지 못하고 (프로 버전을 소유하고 있습니다.)이 페이지를 클릭하면 대체 도구를 찾고있었습니다. – scottwed

9

음, findstr 동안 type가하는 유니 코드 파일을 직접 처리 할 수 ​​findstr 실제로 문제없이 유니 코드 를 입력을 처리합니다.

그래서 당신은

+0

findstr과 unicode에 문제가 없었습니다. 잘 작동하는 것 같습니다. 또한/r 스위치를 전달하여 정규식으로 검색 할 수 있다고 덧붙여 야합니다. grep과 마찬가지로 대소 문자를 무시하고 파일 만 목록 화합니다. –

+1

이 파일은 단일 파일에서 작동합니다. grep 대체 파일을 찾고 있으므로 여러 파일 각각에서 한 줄씩 선택할 수 있습니다. 각 파일은 각자의 하위 디렉토리에 있습니다. – jacobsee

+0

이것을 'for/r'과 쉽게 결합하여 디렉토리 트리를 반복적으로 탐색 할 수 있습니다. – Joey

0

펄 -csd -ne 'm은 {\ E \ 여기 Qyour 텍스트} 경우 인쇄'가 될 것입니다 무엇을해야하는지 cygwin (x 서버 사용) - 최신 지원 utf8. 마지막 공연에서 CJK 캐릭터로 많은 작업을하고있었습니다. cygwin의 x 서버를 사용하면 모든 문자를 검색하고 너비가 고정 된 글꼴을 표시 할 수 있습니다. 또한 od와 xxd를 확인하면 16 진수 문자를 사용하여 검색을 쉽게 입력 할 수 있습니다 : $ echo '?' | 그렙 $ (에코 '3F'| xxd -p -r)

3

file.txt를 확실히 갈 단지

type myfile.txt | findstr /c:"I'm searching for this" 
 
> type uc-test.txt 
Unicode test. äöüß 
Another line 
Something else 
> findstr "Something" uc-test.txt 

> findstr /v "Something" uc-test.txt 
■U n i c o d e t e s t . õ ÷ ³ ▀ 
A n o t h e r l i n e 
S o m e t h i n g e l s e 
> type uc-test.txt | findstr "Another" 
Another line 
+2

저는 Cygwin의 큰 지지자입니다. GREP가 UTF-8 입력과 잘 어울릴 것이라고 생각합니다. 그러나 Cygwin GREP의 최신 버전조차도 UCS-16을 효과적으로 처리 할 수 ​​없다고 말할 수 있습니다. 나는 "모든 캐릭터를 16 비트 유닛으로 인코딩하자"라는 사고 방식을 비난하면서 Cygwin을 비난하지 않습니다. UCS-16을 부여한 정신입니다. 이런, 기존의 코드와 호환이 안되는 새로운 아키텍쳐상의 주름입니다. 고마워, 1991! – user1172763

1

내가 몇 년 동안 윈도우를 사용하지 않은,하지만 난 해석 언어로 작성되는 grep을하는 두 가지 대안을 알고 있으며, 따라서 모든 플랫폼에서 실행해야합니다

(파이썬)

  • grin (펄) 모두 명령 줄 도구입니다,하지만 난 당신이 창문 GREP을 사용한 경우 이미 이것에 대한 해결책을 가지고 가정합니다.

    이것들을 한번 보시면 죄송합니다. 이보다 더 나은 동료를 도울 수는 없습니다.

  • 3

    메모장 + +가있는 경우 "파일에서 찾기 ..."옵션을 사용하여 유니 코드 파일을 검색 할 수 있습니다.

    +0

    매우 도움이됩니다. * 항상 * Notepad ++ ... –

    1

    dnGREP을 사용할 수 있습니다. 그것은 유니 코드 파일 유형을 지원하는 또 다른 오픈 소스 grep 도구입니다.

    +0

    fyi가 필요합니다. .NET 4.0이 필요합니다. – jacobsee

    0

    저는 Windows에서 필요한 가장 편리한 무료 프로그램이 Powershell이라고 생각합니다. 예를 들면 :

    은 Get-ChildItem을 -Recurse -path C : \ TEMP \ * C | 선택 문자열을 -pattern 하위 디렉토리 (안

    을 "myunicodestring"또는 그냥 단지 디렉토리 검색 할 경우.) ". C : \ MYDIR \ * 로그인"선택 문자열 -path

    -pattern "오류"