前後行マクロと GNU grepNo.00191
山紫水明 さん 12/03/21 20:20
 
 Yossiさん,

>コマンドプロンプトで grep -V を実行すると
>================================================
>GNU grep 2.6.3

 私の方では
GNU grep 2.5.4
となります。後の記述は同じです。バージョンが違うようです。
 もしかしたらパラメータの指定の記述の仕方が変わったのでしょうか。
 私のはホームページの「改版履歴」で書いたところで手に入れたのですが,
もう少し調べてみます。
                          山紫水明
                          SANSHISUIMEI

[ ]
RE:00191 前後行マクロと GNU grepNo.00192
山紫水明 さん 12/03/21 21:27
 
> 私のはホームページの「改版履歴」で書いたところで手に入れたのですが,
>もう少し調べてみます。

GNU の日本ミラーサイト
http://core.ring.gr.jp/pub/GNU/
で grep を調べると数多くのバージョンと,同じバージョンでも種々のファイル
があります。どれにも肝心の grep.exe が見あたりません。
 どうもこの方面よくわかりませんので,どこでどれをダウンロードしたらいい
か,識者の方のご教示をいただければありがたいと思います。

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:00191 前後行マクロと GNU grepNo.00193
Yossi さん 12/03/22 11:09
 
山紫水明 さん,

ありがとうございます。
grepのバージョン違いでしたか・・・
2.5.4 をインストールしたところ動作いたしました。

ただ、結果につきましては以下のように GNU grepの方が遅いのですが
語数と行数になぜか違いがあります。前後行をカウントに含む含ま
ないの差かと思い 前後行を 0 にして実行しても語数と行数は同じ
結果でした。
--------------------------------------------------------
【検索結果】  12/03/22(木) 10:45  by Zengogyo.mac 3.26 & GNU grep

検索語 「EX00--」を含む,前 1 行,後 1 行です。
検索結果は,語数:264,行数:264 です。
< 所要時間  14秒203 >
--------------------------------------------------------
【検索結果】  12/03/22(木) 10:45   by Zengogyo.mac 3.26

検索語 「EX00--」を含む,前 1 行,後 1 行です。
検索結果は,語数:85,行数:85 です。
< 所要時間  9秒 >
--------------------------------------------------------

Cygwinの grepは秀丸のマクロから実行する場合は grep対象と
するパス指定に /cygdrive/c/.... などとしなければならないようです。
コマンドプロンプトでは c:\.. と指定しても動作するのですが
このあたりはちょっとナゾです。

[ ]
RE:00193 前後行マクロと GNU grepNo.00194
Yossi さん 12/03/22 11:41
 
山紫水明さん こんにちわ

マクロを以下のように調整したところ Cygwin版 grepでも動作しました。
ただこれでは使いにくいので Cygwin版 grep ではなく
GNU grep の最新版にすればパフォーマンス的にも使えそうです。
お忙しいところありがとうございました。

GNUgrep:
//if( #searchfile == 1 ) $object = basename2;
//else $object = $folder + "\\*.*";
//if( #searchfile == 4 ) $sub = "-r ";
//else $sub = "";
$sub = "-r ";
$object = "/cygdrive/c/ABC/COOP/DEC/MAR";

--------------------------------------------------------
【検索結果】  12/03/22(木) 11:26  by Zengogyo.mac 3.26 & GNU grep

検索語 「EX00--」を含む,前 0 行,後 0 行です。
検索結果は,語数:264,行数:264 です。
< 所要時間  3秒187 >
--------------------------------------------------------

[ ]
RE:00193 前後行マクロと GNU grepNo.00195
山紫水明 さん 12/03/22 21:59
 
 Yossiさん,

>ただ、結果につきましては以下のように GNU grepの方が遅いのですが

 「詳細ヘッダを付加」を選択した場合は,各ファイルのヒットする行数を取得
するためにそのためのグレップを行いますので,事実上グレップを2度繰り返し
ています。

>語数と行数になぜか違いがあります。

 常にそうなりますか?
 こちらにも同じデータがないと検証はできませんが,ファイル名自体に検索語
が含まれているということはありますか?

>Cygwinの grepは秀丸のマクロから実行する場合は grep対象と
>するパス指定に /cygdrive/c/.... などとしなければならないようです。
>コマンドプロンプトでは c:\.. と指定しても動作するのですが
>このあたりはちょっとナゾです。

 このマクロでは,冒頭のパス指定の場所に実際に grep.exe が存在するかを確
かめ,存在したら,ダイアログに GNU grep の選択を現すことにしています。フ
ァイルの存在の確認の際には,パスの設定は効かないからだと思います。

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:00195 前後行マクロと GNU grepNo.00196
Yossi さん 12/03/23 10:21
 
山紫水明さん, こんにちわ

>>語数と行数になぜか違いがあります。
>
> 常にそうなりますか?

はい、常にそうなりますね


> こちらにも同じデータがないと検証はできませんが,ファイル名自体に検索語
>が含まれているということはありますか?

ファイル名に検索語は含まれておりません

[ ]
RE:00196 前後行マクロと GNU grepNo.00197
山紫水明 さん 12/03/24 09:31
 
 Yossiさん,

>>>語数と行数になぜか違いがあります。
>> 常にそうなりますか?
>はい、常にそうなりますね

 その後マクロを少し修正しています。一番新しい版で,次のようなテストをして
みました。
 このツリーの私の3月22日の発言(12/03/22 21:59)の全文を内容とするファイル
を作成し,ファイル名を test1.txt として test という名前のフォルダに保存。
 さらに同じこのファイルを test2.txt test3.txt test4.txt test5.txt
として同じフォルダに保存。
 テストの結果は次のとおりでした。
--------------------------------------------------------
【検索結果】  12/03/24(土) 08:36  by Zengogyo.mac 3.26 & GNU grep

検索語 「マクロ」を含む,前 1 行,後 1 行です。
検索結果は,語数:10,行数:10 です。
< 所要時間  0秒562 >
--------------------------------------------------------
【検索結果】  12/03/24(土) 08:10   by Zengogyo.mac 3.26

検索語 「マクロ」を含む,前 1 行,後 1 行です。
検索結果は,語数:10,行数:10 です。
< 所要時間  2秒 >
--------------------------------------------------------
【検索結果】  12/03/24(土) 08:39  by Zengogyo.mac 3.26 & GNU grep

検索語 「grep」を含む,前 1 行,後 1 行です。
検索結果は,語数:20,行数:20 です。
< 所要時間  0秒687 >
--------------------------------------------------------
【検索結果】  12/03/24(土) 08:38   by Zengogyo.mac 3.26

検索語 「grep」を含む,前 1 行,後 1 行です。
検索結果は,語数:25,行数:20 です。
< 所要時間  2秒 >
--------------------------------------------------------

 同じ条件で同じ結果が得られますでしょうか。
 ここで「grep」の場合に語数の違いが出ています。これは1つの行に「grep」
が2個ある行があるためで,GUN grep を使用しない方が正しい数字が得られます。
 これは今のところ仕様です。

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:00197 前後行マクロと GNU grepNo.00198
山紫水明 さん 12/03/24 11:17
 
> これは今のところ仕様です。

 マクロ修正した結果,次のようになりました。
--------------------------------------------------------
【検索結果】  12/03/24(土) 11:08  by Zengogyo.mac 3.26 & GNU grep

検索語 「grep」を含む,前 1 行,後 1 行です。
検索結果は,語数:25,行数:20 です。
< 所要時間  0秒843 >
--------------------------------------------------------
                          山紫水明
                          SANSHISUIMEI

[ ]
RE:00198 前後行マクロと GNU grepNo.00199
Yossi さん 12/03/24 23:11
 
山紫水明さん

3.26β4 ありがとうございます。

行数が違う原因がわかりました。
GUN grep は隠し属性の .svn フォルダも調べているのに対し
そうでない場合はそのフォルダを無視しているためでした。
出力の区切りに番号がついて見やすくなりました。

[ ]
RE:00199 前後行マクロと GNU grepNo.00200
山紫水明 さん 12/03/25 21:30
 
 Yossiさん,

>行数が違う原因がわかりました。

 問題ないようなので,正式版にしました。

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:00200 前後行マクロと GNU grepNo.00201
Yossi さん 12/03/26 09:52
 
山紫水明 さん、こんにちわ

> 問題ないようなので,正式版にしました。

いろいろと対応していただきありがとうございました。
細かい点ですがマクロ内部の表記が Ver3.26β4  のままのようです。

[ ]
RE:00201 前後行マクロと GNU grepNo.00202
山紫水明 さん 12/03/26 17:47
 
 Yossiさん,

>細かい点ですがマクロ内部の表記が Ver3.26β4  のままのようです。

 ご指摘ありがとうございます。修正しておきました。

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:00192 前後行マクロと GNU grepNo.00203
さん 12/03/26 23:14
 
2012年3月21日21:27 山紫水明 <xxxxxxxxxxxxxxxxxxx@maruo.co.jp>:
>  どうもこの方面よくわかりませんので,どこでどれをダウンロードしたらいい
> か,識者の方のご教示をいただければありがたいと思います。

Windowsのコマンドプロンプトで動くGNU grepということなら、
GnuWin32が一般的だと思います。

http://gnuwin32.sourceforge.net/packages/grep.htm

その他、UNIX系ツールのパックものは下記があります。

https://github.com/bmatzelle/gow/wiki
http://sourceforge.net/projects/unxutils/

どちらにもgrepが含まれています。

以上、参考まで。

--



---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:00203 前後行マクロと GNU grepNo.00204
Iranoan さん 12/03/26 23:26
 
 今日は、Iranoan です。
> その他、UNIX系ツールのパックものは下記があります。
http://sourceforge.jp/projects/mingw/
もありますね。

 まあこれは、開発環境の構築が主目的ですが。

[ ]
RE:00204 前後行マクロと GNU grepNo.00205
山紫水明 さん 12/03/27 20:11
 

 清さん,
 Iranoanさん,
 コメントありがとうございます。

>Windowsのコマンドプロンプトで動くGNU grepということなら、
>GnuWin32が一般的だと思います。
>http://gnuwin32.sourceforge.net/packages/grep.htm

 私が自分でダウンロードしてホームページで紹介したのはこれでした。

>その他、UNIX系ツールのパックものは下記があります。
>https://github.com/bmatzelle/gow/wiki
>http://sourceforge.net/projects/unxutils/
>どちらにもgrepが含まれています。

 たしかにここにもありますが,バージョンは上記よりも古いようです。

>> その他、UNIX系ツールのパックものは下記があります。
>http://sourceforge.jp/projects/mingw/
>もありますね。
> まあこれは、開発環境の構築が主目的ですが。

 ここは私には少し敷居が高くて,コマンドプロンプトで動く grep.exe の新し
いバージョンをどうやって手に入れるかわかりませんでした。

                          山紫水明
                          SANSHISUIMEI

[ ]