Linux fgrep 대용량 "MIXED_WORDS" 파일에서 "only_words_in_my_언어"를 추출하는 방법은 무엇입니까?

Linux fgrep 대용량 "MIXED_WORDS" 파일에서 "only_words_in_my_언어"를 추출하는 방법은 무엇입니까?

큰 "MIXED_WORDS(160mb)" 파일에서 "only_words_in_my_언어(900kb)"를 추출하고 싶습니다. 이를 위해 다음 구문을 사용했지만 결과가 좋지 않습니다.

fgrep -w -f "only_words_in_my_language.txt" "MIXED_WORDS_from_all_over_the_world" > extracted_word_of_my_country_only.txt

그래서 저는 음... 더 나은 결과를 얻기 위해 전체 단어를 "일치"하고 싶습니다. 예를 들어, 제 언어로 된 단어는 다음과 같습니다.

Maimuta - 7글자, 전체 단어가 일치하면 결과는 다음과 같습니다.

maimuta@123
maimuta2016!
Maimuta01!
maimuta@123456

6글자를 일치시키면 res. 가능한:

maimut
maimutoi1
Maimutareala01!

그래서 내 질문은 이것을 수행하는 방법입니다. 전체 단어를 정규식이나 Linux의 다른 항목과 일치시키는 방법 모두에게 감사하고 행운을 빕니다!

나는 이것을 시도했지만 작동하지 않습니다.

fgrep -iowf "my_lang_dict.txt" "mixed_words" > my_lang_unique-words.txt

내 lang.dict.txt(900kb) 및 Mixed_file(64MB), grep에 따르면 메모리가 소진되었습니다.

불가리아어, 러시아어가 있고 전체 단어 텍스트 파일에 있는 대규모 단어 혼합에서 해당 국가의 언어 단어 "만" 추출하려고 한다고 상상해 보십시오. 당신은 무엇을 할 것인가? 당신은 "당신의 나라"사전이 필요합니다, 그렇죠? 그런 다음 해당 국가의 사전에 있는 모든 단어를 혼합 단어와 비교하면 가장 좋은 결과는... 전체 단어를 일치시킬 때인 것 같습니다!

답변1

오류 메시지에서 알 수 있듯이 메모리가 부족합니다. 시스템은 900KB 파일의 모든 단어와 일치하는 정규식을 작성하고 있습니다. mix_word 파일의 크기는 중요하지 않습니다. 이 오류 메시지의 실제 의미는 오해의 소지가 있을 수 있습니다 regular expression too complicated.

lang.dict.txt를 더 작은 덩어리로 나눌 수 있어야 합니다. split이를 수행하려면 Unix 명령을 사용할 수 있습니다 .

관련 정보