Grepのディレクトリ指定No.00288
たかゆき さん 98/10/28 16:55
 
grepマクロについて、誰か知っている方いましたら、
ちょっと教えていただけませんか?

マクロでGrepを実行するときに任意のディレクトリ以下にある
全ファイルをGrep対象として指定することは可能なのでしょうか?
ちょっとこの「任意のディレクトリ」っていうのが曲者で、
たとえば、下記の例のようにカレントディレクトリからの
相対パスの指定ではうまく行くのですが、これを、
ルートディレクトリからの絶対パスで指定する、なんてことは
できないのでしょうか?

ちなみに
「grep $str[0], "*.*", "C:\ABC\DEF", subdir;」
のようにしたら、指定したディレクトリは完全に無視されて、
カレントディレクトリ(Grepを起動したファイルのあるディレクトリ)
以下のファイルが対象になってしまいました。
#もーこれで3時間ちかくはまっています(^^;;

レス、よろしくお願いします。

〜〜〜〜〜〜〜(例)〜〜〜〜〜〜〜
copyword;
$str[0] = "";
beginclipboardread;
$str[0] = getclipboard;
grep $str[0], "*.c;*.h;*.a30;*.inc", ".\.", subdir;

[ ]
RE:00288 Grepのディレクトリ指定No.00289
EMiCC さん 98/10/28 19:30
 
たかゆきさん、はじめまして。

>「grep $str[0], "*.*", "C:\ABC\DEF", subdir;」
>のようにしたら、指定したディレクトリは完全に無視されて、

マクロで"\"記号を使用する場合は、"\\"と表現します。
-- 以下、秀丸エディタマクロヘルプから引用 ----------
grep, grepdialog, localgrep文

 正規表現文字列やファイル名の中で「\」を""で囲った文字列の中で
指定する場合は、秀丸エディタの文字列定数の仕様により、「\\」と
指定しなくてはいけません。例えば正規表現で「\n」(改行文字)を
検索させたい場合は、マクロの中の文字列定数としては"\\n"と指定する
必要があります。
-- ここまで --------------------------------------
つまり、上記のマクロは
「grep $str[0], "*.*", "C:\\ABC\\DEF", subdir;」
                         ~    ~
とすれば、指定したディレクトリから検索するはずです。

[ ]
RE:00289 Grepのディレクトリ指定No.00291
たかゆき さん 98/10/29 08:46
 
EMiCCさん、おはようございます。
回答ありがとうございました。

>マクロで"\"記号を使用する場合は、"\\"と表現します。
恥ずかしながら、これをすっかり忘れていまして、、、
そうですよね、こうすればよかったのですね。

>「grep $str[0], "*.*", "C:\\ABC\\DEF", subdir;」
>                          ~    ~
>とすれば、指定したディレクトリから検索するはずです。
マクロを上記のように変更したら、うまく動きました。
本当にありがとうございました。

                                    − 以上 −

[ ]