grepのファイル指定で拡張子固定にしたいNo.17534
ジュウザ さん 04/07/07 11:00
 
はじめまして、ジョウザと申します。

grepの実行なのですがファイル名を「*.bas」として実行した場合なのですが
*.bas以外に*.bas0707とかも検索してしまいます。
*.basだけを検索する方法ってあるのでしょうか?
バックアップで拡張子の後に日付を入れて管理しているため検索すると
バックアップファイルが大量にひっかかってしまうのです。

よろしくお願いいたします。

[ ]
RE:17534 grepのファイル指定で拡張子固定No.17535
EMiCC さん 04/07/07 11:45
 
ジョウザさんはじめまして。EMiCCと申します。

>grepの実行なのですがファイル名を「*.bas」として実行した場合なのですが
>*.bas以外に*.bas0707とかも検索してしまいます。

これは確かWindowsの仕様だったと思います。
試しにコマンドプロンプトで *.txt とやったら *.txt2 も表示されました。
回避方法は私には思いつきませんので、誰か別な人のコメントを待ってみて下さい。

>バックアップで拡張子の後に日付を入れて管理しているため検索すると

私の場合は、たとえば ABC.bas だったら ABC.bas.0707 とか ABC.0707.bas などと
いう管理方法をとっています。
(拡張子による関連付けを残したいか外したいかで使い分けています)
もし今さらファイル名を直せるなら、ABC.bas.0707 という形式にすれば、希望通り
の検索結果になりますね。

[ ]
RE:17534 grepのファイル指定で拡張子固定No.17536
秀まるお2 さん 04/07/07 11:55
 
 結論になりますが、*.basと指定して*.bas0707等がヒットしてしまうのは仕様
でして、回避する方法はありません。

 Windowsのファイル検索の仕様がそのようになっていて、秀丸のgrepでも
Windowsの仕様に習ってそのような動作となっています。例えばWindowsのファイ
ル検索にて「*.bas」とすると、「*.bas0707」等もヒットしてしまいます。

 ファイルの拡張子をファイルの種類以外の目的に使うと何かと具合が悪いので、
例えば

 AAA_0707.bas

 のように、あくまで拡張子は「.bas」とした上で、ファイル名の所で区別する
ように運用した方が都合がいいと思います。

[ ]
RE:17534 grepのファイル指定で拡張子固定No.17540
Iranoan さん 04/07/07 12:28
 
 ジュウザさん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
> grepの実行なのですがファイル名を「*.bas」として実行した場合なのですが
> *.bas以外に*.bas0707とかも検索してしまいます。
 これは OS 側の問題で、仕様になっています。
http://hidemaruo.dip.jp:81/hidesoft/hidesoft_2/x12173.html#12184

> バックアップで拡張子の後に日付を入れて管理しているため検索すると
> バックアップファイルが大量にひっかかってしまうのです。
 これを実現するなら、
・バック・アップの命名方法を *.bas.mmdd 等に変える
・結果が出力されてから、該当箇所を正規表現を使った置換で削除する
  →検索文字列を
  ^([A-Z]:\\)?[^:\n]+.bas.+\([0-9]+\)(: .+)?\n
  にする
等の方法があります。個人的には速度のことを考えて、前者を進めます。

[ ]
RE:17534 みなさん、ありがとうございますNo.17545
ジュウザ さん 04/07/07 16:49
 
Windowsの仕様でしたら仕方ないですね。
みなさまの指摘して頂いたように、これからはバックアップの命名仕様を
変更したいと思います。

ありがとうございました。

[ ]