거대한 (70GB), 한 줄 의 텍스트 파일이 있고 문자열 (토큰)을 바꾸고 싶습니다. 토큰 <unk>
을 다른 더미 토큰 ( 장갑 문제 ) 으로 바꾸고 싶습니다 .
나는 시도했다 sed
:
sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
그러나 출력 파일 corpus.txt.new
에는 0 바이트가 있습니다!
나는 또한 perl을 사용해 보았습니다.
perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
하지만 메모리 부족 오류가 발생했습니다.
작은 파일의 경우 위의 두 명령이 모두 작동합니다.
문자열을 어떻게 교체 할 수 있습니까? 이것은 관련 질문이지만 답변이 없습니다.
편집 : 10GB (또는 무엇이든) 청크로 파일을 분할하고 각 파일에 적용 sed
한 다음 병합하는 것은 cat
어떻습니까? 말이 돼? 더 우아한 솔루션이 있습니까?
split
과 함께 사용할 수 있습니다 -b
. 을 사용 sed
하여 재 조립 하여 차례로 처리하십시오 . <unk>
두 파일로 나눌 수없고 발견되지 않을 위험이 있습니다 ...