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コマンドを使用できます。

おすすめ記事