Request/487 のバックアップ差分(No.9)




  • 追加された行はこの色です。
  • 削除された行はこの色です。
* 条件にHitした行を高速削除 [#qac5b19d]
-ページ:     [[Request]]
-投稿者:     [[anonymous]]
-優先順位:   低
-状態:       提案
-カテゴリー: 検索
-投稿日:     2014-09-21 (日) 21:12:54
-バージョン: 

** メッセージ [#t7b2e158]
置換ダイアログのオプションに「該当行を削除」を追加して、Hitした行を高速に削除できてほしい。

現時点、条件該当行の削除処理には正規表現を使う必要がある。また行のきわめて多いファイルでは、行の削除処理に指数関数的に時間がかかる。
高速に処理したければ、sedなどの外部ツールで処理したり、サクラでgrep抽出したりがあるが、前者は正規表現書式が異なり、後者は論理が逆になるためいまいち。

行の削除に特化して、先に該当行を検索し、必要行のみ抽出構成し、不要行を一括して処理すれば早くなりそうだが、如何か?

----
- 追記: マクロ用関数では、検索条件を通常のStringの他、Arrayで与えられると便利だがどうか。 -- [[Requester]] &new{2014-09-21 (日) 21:31:08};
- 1.検索ダイアログで[該当行マーク]をする。2.全選択。3.ブックマークの設定・解除で反転する4.ブックマーク一覧を表示してコピー(ただし前後のスペースが消える) --  &new{2014-09-22 (月) 00:35:23};
- もし2.1.1.0以上を試してないなら一度使ってみてください。「^.*ab.*\n」とかでの行削除も速くなっています --  &new{2014-09-22 (月) 00:45:25};
- 2.1.1.3使用中です。確かにそれくらいの頃にある程度高速化した気はしますが…現時点で最適化済みと言うことでしょうか。(マーク使用技は対象が大きすぎると選択だけで遅いです) -- [[Requestor]] &new{2014-09-22 (月) 22:56:37};
- もしステータスバーをByte表示にしていない場合で全選択が遅い場合はメモリ不足かも。(何MBのファイルを何GBのメモリで?)行削除を実装しても遅いままだと思います。Grepでマッチしない行の検索を追加したほうがパフォーマンスは良さそう --  &new{2014-09-23 (火) 02:04:38};
- ^.*moziretu.*\r\nのような.*が2つ以上ある正規表現はマッチしない時に遅いようなので、行削除機能追加で改善する可能性もあるにはあります --  &new{2014-09-23 (火) 02:25:21};
- あとRedo/Undoを無効にすることでメモリ使用量=>パフォーマンスの改善が可能かも --  &new{2014-09-23 (火) 02:30:34};
- [[upld:113/sakura2-1-1-3r3817_linedelete_v1.zip]]行削除実装テスト(置換ダイアログ→置換対象:行削除)。ヒットした文字列を含む行を削除する機能を追加 -- [[もか]] &new{2014-09-23 (火) 04:17:05};
- 早速ありがとうございます。効果のほどは明日にでも報告します。対象は100〜200MB程の時刻付きログデータで、メモリ4GB(実質3GB)のWin7 32bit環境で処理しています。抽出キーワードは確かに.*で挟まれています。 -- [[Requestor]] &new{2014-09-23 (火) 22:40:48};
- 行削除モードでは通常なら「^.*ab.*\n」→「ab」のように指定してください --  &new{2014-09-23 (火) 23:37:05};
- [[upld:115/sakura2-1-1-3_r3817_grep_nohit_v0_1.zip]]Grep否定行テスト -- [[もか]] &new{2014-09-24 (水) 00:35:44};
- 上げていただいた物でテストしました。117MB,230万行のファイルでの一部行削除処理、v2.1.1.3元で約21秒に対して、linedeleteは正規表現ありで約6秒、正規表現なし単語のみでは約4秒でした。Grep否定の方も5秒程度(リアルタイム表示なしで)と、ほぼGNU sed v4.2.1同等の早さになりました。 -- [[Requestor]] &new{2014-09-24 (水) 21:32:27};
- (続) 作業のシームレスさで linedelete仕様が好みですが、Grep否定行仕様が応用利きそうで、どちらもあってよさそうです。ありがとうございました。 -- [[Requestor]] &new{2014-09-24 (水) 21:37:29};

#comment
#attach


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS