1
유니 코드 문자 열에 대해 grep을 사용하여 파일을 검색하는 방법은 무엇입니까?유니 코드 문자를 grep하는 방법은 무엇입니까?
"\ xfe \ n \ xfe"문자열의 발생 횟수를 계산하려고합니다. 나는 이것을 통해 파이썬에서 이것을 발견 할 수있다 :
open(filename).read().count('\xfe\n\xfe')
이것은 수천 개의 일치를 찾는다.
그러나 이것은 전체 파일을 메모리에로드하므로 시스템의 메모리보다 큰 파일을 검색하려고하면 충돌이 발생합니다.
이grep -P -c "\xfe\n\xfe" filename
그것은 큰 거의 0 메모리를 소모하지만이 같은 파일에서 실행하더라도, 그것은 0 일치를 발견 :
그래서 나는 통해 그렙와 동등 할 노력하고있어. 구문에 어떤 문제가 있습니까?
'grep'는 줄 단위로 작동합니다. –
전체 파일을 파이썬에서 메모리로 읽을 필요는 없습니다. 또는, 제멋대로 한 터미널 (물론, 적어도 파일과 같은 인코딩을 사용하는)을 제공한다면, 이스케이프없이 문자를 붙여 넣기 만하면됩니다. 즉'grep þ '이 작동합니다. – pvg
필자는 160000 개의 줄 (40000 개의 일치 항목 포함)로 파일을 테스트했습니다. 파이썬은이 경우 grep에 비해 훨씬 더 빠를 것입니다. @ 모세 콜 데 예의 솔루션은 잘 작동합니다 – RomanPerekhrest