|
ご無沙汰しております。 お世話になってばかりの文太です。RCP には、Vz を
使えばお世話になる毎日をまだ続けております。m(__)m
さて、wild.exe なのですが、少々挙動がおかしいように思え、またそれなり
に致命的であるように感じられるものですから、ご報告と、もし僕の報告自体が
間違っていないようでしたら、お時間ができたときにでも、直していただけない
かというお願いです。
実は、 大量のファイルを扱うときには、僕はVzでなく、sed と awk を使う
ことが多いのですが、そんな場合、この wild 君に大活躍してもらっているので
す。
ところが、コマンドラインでの grep へパターンを渡そうとしたら不具合と思
われる現象に遭遇しました。スクリプトにパターンを入れてしまえば、もちろん
問題ありません。それで今まで発現しなかったのだろうと思うのですが、やはり、
grep では、コマンドラインからパターンを与えたいので、どうか宜しくお願い
いたします。(当然、>sed -e "^foo$" をwildに展開してもらおうとすれば、同じ
問題が出るでしょう)
'^' が消失してしまう、32 ビット版では、"foo" の引用がうまくいかないよ
うだ、というのがこの現象の分かりやすい表現になろうかと思います。以下は、
すべて Win XP での実験です。
16ビットdos用
C:\>Wild -D "Ygrep \"^foo$\" $f >>c:\kek" c:\xyz\*.*
<< 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
Copyright (c) 1996-98 by namazu & Si
DEBUG MODE:Ygrep "foo$" c:\xyz\TEST1.TXT >>c:\kek
DEBUG MODE:Ygrep "foo$" c:\xyz\TEST2.TXT >>c:\kek
^ #ここの'^'が落ちてしまう。
32ビットWin dos窓用
C:\>Wild32 -D "Ygrep \"^foo$\" $f >>c:\kek" c:\xyz\*.*
expand wildcard & excute command - Wild version1.50 (c) 1996-99 by namazu & Si
2 file(s) is found
cmdline = Ygrep \foo$\ C:\XYZ\TEST1.TXT >>c:\kek
cmdline = Ygrep \foo$\ C:\XYZ\TEST2.TXT >>c:\kek
^ #quote ", ^ の両方がおかしい。
command.com, cmd.exe の解釈も絡むようですが、dos, dos box in Win では、
やはり普通、'foo' でなく、"foo" だろうと思うのです。 以下の 'foo' の場合
では、不具合がでません。
それでも、確か"foo"でしかエスケープできない場合があったと思うのです。
ご検討を宜しくお願いいたします。
C:\>Wild "Ygrep '^foo$' $f >>c:\kek" c:\xyz\*.*
<< 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
Copyright (c) 1996-98 by namazu & Si
<< Input File Name >>
c:\xyz\test1.txt
<< Input File Name >>
c:\xyz\test2.txt
m(__)m 文太 m(__)m
|
|