|
こんにちは。マボカルです。
以下のような大量のファイル(.html)を対象にgrepをかけて
必要とする文字列が含まれたタグ部分の列のみを一つのテキスト
ファイルとして取り出そうとしています。
ファイル数:67,000
フォルダ数: 3,200
全体サイズ:1GB
検索文字列は|で区切った何パターンかのタグ部分です。
xxxx|xxxx|xxxx|xxxx|xxxx
ただ問題はタグ部分の一行の長さがとても長く、普通にgrepをかけても
2048文字目からgrep結果が切れてしまいます。解決方法として過去
スレッドを探したところ以下のようなものが出てきたので
http://www.maruo.co.jp/hidesoft/2/x27665_.html#27665
>もう1つは設定で、少々裏技的ですがgrepダイアログで「追加の条件」をONにし
>て何らかの条件を指定すると、grepは既存の方式とは違う方法で実行され、grep
>結果も2048文字を超えた実際のテキストを結果に表示させることができるように
>なる方法もあります。
>何らかの追加の条件を指定する必要がありますが、もしC言語の#ifdef等の無効部
>分を使われていないとしたら、「#ifdef等の無効部分」「を除く」にしておくと、
>ほぼ通常のgrepと変わりない動きで結果は長いものが表示されることになると思
>います。
ご指示のとおり「#ifdef等の無効部分」「を除く」で再度grepをかけると
メモリ不足です。死にます。(場所=CAddBuffer)
というダイアログが出て350,000行あたりで死んでしまいます。
フォルダを分割して2回に分けてgrepをかけてもやはりメモリ不足と
出ます。なお「動作環境-パフォーマンス」は最大値にしてあり、
PCのメモリ自体は2Gあります。
何か解決方法はありますでしょうか?よろしくお願いします。
日本語版XP+秀丸エディタVer.801
|
|