konnoさん
混線しています。
★
Bunta wrote:
>> grep では、"yagrep.exe"は、「.」が何でもあり(メタキャラ)、となり
>> fgrepでは、"yagrep.exe"は、「.」がピリオドと解釈されるはずです。
konno wrote:
>これはつまり、どちらでもヒットするはず、ということですか。
>結果的には fgrep のほうだけヒットしたので、メタキャラの解釈にバグがあるかもしれないということ?
「これはつまり」がどこにどう繋がっているのか分かりません、すいません。
konnoさんの2行目(「結果的には fgrep のほうだけヒットした」)は、
#11663 より引用
まずは今まで通りで
D:\LOG\FGAL\DC>GREP -nir "yagrep.exe" *.*
No files matching: *.*
FGREPに名前を変更すると
D:\LOG\FGAL\DC>FGREP -nir "yagrep.exe" *.*
3/bak/yagrep.log:107:YAGREP.exe -i -H -n "^v\.c\.\/salon" c:\lx\log\vzlog\mixvz\mixvz91\vz901003.log >mixxx
3/bak/yagrep.log:177:> YAGREP.exe -i -H -n "^v\.c\.\/salon" c:\lx\log\vzlog\mixvz\mixvz91\vz901003.log >mixxx
に言及してますか?
上のサンプル、もう少し整理していただけませんか? よく読めないのです。
-n: line number
-i: ignorecase
-r: recursive
これらの意味は分かっています。が、何かが問題みたいに思えたら、この辺を整理する
のはどうでしょうか?
★のポイントに戻ると、
grep が "yagrep.exe" を検索パターンとするとき、「.」はメタキャラですから、ピリオドでも
何でもヒットします。
fgrep は、「.」に対し、ピリオドにしかヒットしません。正規表現抜きだから。リテラルと
解釈されるから。
grep で結果が出ず(ヒットなし)、fgrepで結果が出る(ヒットあり)。何かおかしいようには
思われます。
konnoさんが考えていること、というより、konnoさんがやっていることが、僕にはよく読めて
いないような感じがしています。
ちゃんとしたツールで、「漏れ」とか、あってはいけないような気がします。
僕の書くマクロじゃないんだし。