勝手にしやがれ Part2.

【投稿時の注意】
パスワード入力:必須。投稿後の削除時は同じパスワードを使います。
投稿者入力:いまのところ任意。入力を省略すると「名無しさん」がデフォルトで表示されます
Eメール入力:いまのところ任意。
リンクの入力:本文中に http の文字列が含まれると投稿出来ません。URL を貼るときは h 抜きで ttp:// とするなど工夫してみて下さい

5 / 9 ページ ←次へ | 前へ→

【83】Re:難しいのかもしれない要望です(logsort...
 文太  - 2008/09/26(金) 0:15 -

引用なし
パスワード
   Siさん、

 おお、やっていただけますか!? m(__)m

> どうせやるなら閏年のチェックまで折り込みたいです。
 そ、そこまで?

> で、ふと思ったのですが、文太さんのように現在も NIFTYのログ形式でテキスト管理
> されている場合は、年の表記はどのようにされているのでしょう?
> LOGSORT(W) は2桁の年表記にしか対応していないので、
> 2008/09/25
> ↓
> 08/09/25
> でOKでしょうか?

 OKだと個人的には思います。僕が持っているもっとも古いniftyのログが
(11)  91/01/05 21:34
 で、mixでさえ
( 1)  90/04/02 20:38
 ですので、2090何まで生きられるとは到底思えませんので、2桁希望です。
 実際、4ケタのBBSログを頭2つ取るという作業を、マクロ群は行っていま
す。 しなくていいなら、それに越したことはないのです。 というか、logsortw
にお世話になる段階では、2桁に丸められています。
 という事情ですので、4ケタ処理にするなら、オプションで2桁処理が可能に
してください。m(__)m
 (nifty, PC-VANの通信ログのソートですから、やっぱり2桁がデフォだと思う。)

> タグジャンプは狙っていれました ^^;
 当然です。さすが、Siさん。

> ただメッセージの吐き出し先をが標準エラー出力にしてあるので気になっていたの
> ですが、標準出力に変えなくとも良さそうですね。

 これ、オプションで選べる、というのは駄目でしょうか。
 Vzer にとっては(このツールにものすごくお世話になっているのは、『我々』
だろうと思っているのです)、logsort が 16bit だったら、command.com の制
御下にありますから、 コンソール・ファイルの参照ができるのです(shift+ESC
で、黄色のバーが上に出るやつです。覚えていますか?)。
 しかしながら、32bit もの(logsortw)が出す出力というのは、どうせVzか
らは「コンソール・ファイルの参照」ができないので、リダイレクトしてからタ
グ・ジャンプするしかないのです。なのですが、それが「>」か「2>」かというの
はけっこう調べるのが面倒だったりするのです。
 ま、ドキュメントに「標準エラー出力」か「標準出力」か明示されていれば、
困らないといえば困らないのですが(たしかに僕は、今回これを実験したような
記憶があります)。

 そうか、 すると、logsort(16 bit, dos 用)というのも、タグ・ジャンプが
可能になるなら、ver up してもらう価値があるのか。 いえ、これは我が侭でし
ょう。ログの整理を純ドスでやったりはしない。メモリーもディスクも潤沢な
XPでやる作業ですね。というわけで、

 「標準エラー出力」か「標準出力」か、決めてしまってください。m(__)m
・ツリー全体表示

【82】Re:Wild(32)の挙動?
 Si  - 2008/09/25(木) 23:55 -

引用なし
パスワード
   ▼文太さん:
>アクセスが拒否されました.

これ、実はこちらでもいろいろ試しているうちに出くわしました。32bitプログラムではないとかかんとかって叱られるんですよね。原因不明ですが、色々と問題がありそうですね。すみません。

>ttp://it-is-it.net/CMD/%C1%B4%C8%CC/%B9%BD%CA%B8%B2%F2%C0%CF/

これは濃厚なサイトを紹介頂いてありがとうございました。^ の問題を調べるのに、長い年月埃をかぶっていた XPコマンドプロンプトの解説本を引っ張り出して読み返していたのですが、このサイトほど詳しくは書かれていませんでした。

> wild.comについては、cmd.exeの要求を満たせば、大丈夫でした。ありがとうご
>ざいます。また、バグ入りバグ・レポート、申し訳ありませんでした。

こちらこそ恐縮です。

それにしても、MS-DOSプロンプト、XP のコマンドプロンプト、いろいろ奥が深いですねえ。Vzのコマンドラインと云うのもありますし。Vista はまだ使ったことがないので分かりませんが、またぞろ何か変わっているのかな?

# VZのコマンドラインと云えばめざらさんとの RCP の不具合のやりとりが尻切れトンボになってしまったけど、どうしたのかしら・・・
・ツリー全体表示

【81】Re:難しいのかもしれない要望です(logsort...
 Si  - 2008/09/25(木) 23:39 -

引用なし
パスワード
   ▼文太さん:
> 月は13以上ない。
> 日は32以上ない。これで十分でしょう。もちろん、マイナスなんてあるはずな

どうせやるなら閏年のチェックまで折り込みたいです。

で、ふと思ったのですが、文太さんのように現在も NIFTYのログ形式でテキスト管理されている場合は、年の表記はどのようにされているのでしょう?
LOGSORT(W) は2桁の年表記にしか対応していないので、
2008/09/25

08/09/25
でOKでしょうか?

>いので。あれはマクロのバグです。でも怪我の巧妙で、タグジャンプできるlogsort
>になりました。m(__)m

タグジャンプは狙っていれました ^^;
ただメッセージの吐き出し先をが標準エラー出力にしてあるので気になっていたのですが、標準出力に変えなくとも良さそうですね。
・ツリー全体表示

【80】Re:Wild(32)の挙動?
 文太  - 2008/09/25(木) 0:02 -

引用なし
パスワード
    Siさん、すいませんでした。
 頭悪いなぁ>文太

 僕はモバイル・ギアという純Dos機を持っていて、すぐに試験できたはずだ
ったのでした。どうもトンチンカンなレスをしまして申し訳ありませんでした。
 事情は複雑ではありましたが、すぐ実験してみることを思いつくべきでした。
XPの command.com の支配下にあるといっても、やはり裏では cmd.exe が監視
しています。 ですから、「^」消失の件は、cmd.exe の要求を満たすエスケープ
の仕方しかありませんでした。(C:\>^ だけだと、反応が違うのですが)

 まず、
C:\>command.com /cdir c:\bin\wild.com
WILD   COM   12396 98-06-12  1:34

C:\>command.com /cdir c:\bin\wildl.exe
WILDL  EXE   16893 99-02-04  1:50        (リネームしてあります)
 の2つが対象です。

 色んなところの色んなマシンで使うので、リネームして両方(RCP.exeとRCP32.
exeのように)HDの\binディレクトリに入れています。

 まず、wild.comから。

【@XP】
C:\>Wild.com -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

【@dos 6.2】
A:\>Wild.com -D "Ygrep \"^foo$\" $f >>a:\kek" a:\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

 ★wild.comには不具合なし。

 次は、wildl.exe。と、ところが、何、これ?

【@XP】
C:\>Wildl -D "Ygrep \"^^foo$\" $f >>c:\kek" c:\xyz\*.*
アクセスが拒否されました.

 よく分からないけど、しょうがないから、Vzファイラでwild32にリネーム。
 す、すると。(もちろん同じ実行ファイルです。)

C:\>Wild32 -D "Ygrep \"^^foo$\" $f >>c:\kek" c:\xyz\*.*
cmdline = Ygrep \foo$\ C:\XYZ\TEST1.TXT >>c:\kek
cmdline = Ygrep \foo$\ C:\XYZ\TEST2.TXT >>c:\kek

 通りました。ワケワカですが、
 Siさんがおっしゃるように、まずいですね。「\」が残り「"^^」が消失。

C:\>Wild32 -D "Ygrep \"^^^^foo$\" $f >>c:\kek" c:\xyz\*.*
cmdline = Ygrep \^foo$\ C:\XYZ\TEST1.TXT >>c:\kek
cmdline = Ygrep \^foo$\ C:\XYZ\TEST2.TXT >>c:\kek

 進歩。しかし「\」が残り、「"」が消えてる。

C:\>Wild32 -D "Ygrep "^^^^foo$" $f >>c:\kek" c:\xyz\*.*
cmdline = Ygrep ^foo$ C:\XYZ\TEST1.TXT >>c:\kek
cmdline = Ygrep ^foo$ C:\XYZ\TEST2.TXT >>c:\kek

 おお、この場合は、たぶん、「"」がなくとも、ygrepは次の引数をパターンと
認識してくれそう…。でも、辛いですよね。

 では、純Dos。

【@dos 6.2】
A:\>Wildl -D "Ygrep \"^foo$\" $f >>a:\kek" a:\xyz\*.*    (wildlで通るけど、すぐ
cmdline = Ygrep \foo$\ A:\XYZ\TEST1.TXT >>a:\kek    リネームします)
cmdline = Ygrep \foo$\ A:\XYZ\TEST2.TXT >>a:\kek

 「"」の「\」によるエスケープが認識されず、「"^」が消失し、「\」が残る。

A:\>Wildl -D "Ygrep "^foo$" $f >>a:\kek" a:\xyz\*.*
cmdline = Ygrep foo$ A:\XYZ\TEST1.TXT >>a:\kek
cmdline = Ygrep foo$ A:\XYZ\TEST2.TXT >>a:\kek

 「"」が消失し、「^」も消える。「^」がcommand.comにとっての特殊文字って
ことはないですよねぇ? ま、試しに。

A:\>Wildl -D "Ygrep "^^foo$" $f >>a:\kek" a:\xyz\*.*
cmdline = Ygrep ^foo$ A:\XYZ\TEST1.TXT >>a:\kek
cmdline = Ygrep ^foo$ A:\XYZ\TEST2.TXT >>a:\kek

 おお、「^」が「^」でエスケープできた。とはいえ「\」は消失。


 というわけで、Si さんがすでにお気づきのように、wild.com にはバグがあり
ません。wild.exe には、ありそうですね。
 でも、僕は、wild.com で十分なので、cmd.exe にいじめられないように「^^」
とか「^^^^」とかやります。デバッグ・モードがあって、よかった、よかった。
m(__)m

 LFNは自分では作らないようにしていますが、それでもおつき合いしなけれ
ばならない時代です。ですので、LFN対応(NT・XP対応)の wild.exe も、
いつの日にか、宜しくお願いしますね。

 あ、ご存じかと思いますが、XPでは、SFNとLFNの関係が異常です(ま、
と言っては大袈裟かな)。そのディレクトリの状況によって、SFNのbasefilename
自体が書き換えられてしまいます。 LFNが基本になっている世界なんですね。涙。
 それでも、wild.exe については、僕は wild.com で十分に対応できますので、
まったく急いでおりません。dir コマンドと sed で、膨大な ren コマンド羅列
のバッチを書いてSFNに強引に書き換えてしまえばなんとかなりますし。そう
いうときにこそ、wild に登場してもらいたいのですけどね。

 wild.comについては、cmd.exeの要求を満たせば、大丈夫でした。ありがとうご
ざいます。また、バグ入りバグ・レポート、申し訳ありませんでした。
・ツリー全体表示

【79】Re:難しいのかもしれない要望です(logsort...
 文太  - 2008/09/24(水) 1:27 -

引用なし
パスワード
   Siさん、

> 追伸:個人的にそういうのはその前の段階できちんとはじいてますので問題ない
> のですが、意地悪して以下を通したら、通ってしまいました。細かくやろうとし
> たらカレンダーを内蔵しなくちゃですからね。

 月は13以上ない。
 日は32以上ない。これで十分でしょう。もちろん、マイナスなんてあるはずな
いので。あれはマクロのバグです。でも怪我の巧妙で、タグジャンプできるlogsort
になりました。m(__)m
・ツリー全体表示

【78】Re:Wild(32)の挙動?
 文太  - 2008/09/24(水) 1:15 -

引用なし
パスワード
   Siさん、

ttp://it-is-it.net/CMD/%C1%B4%C8%CC/%B9%BD%CA%B8%B2%F2%C0%CF/

間違いなく「^」は特殊文字ですね。でも、クオートの中でも? エスケープ
するのに「^^」ですかぁ? こんな大きな変更は、ちゃんと伝えてもらわなけ
れば困る>MS、とかついつい言いたくなってしまいます。やれやれ、何なん
でしょうね、これは。
・ツリー全体表示

【77】Re:Wild(32)の挙動?
 文太  - 2008/09/24(水) 1:04 -

引用なし
パスワード
   Siさん、

> C:\>^
> を実行してみてください。結果は見てのお楽しみ。
More?

 これはcmd.exeの特殊文字ということなんでしょうね。ワケワカ。(-o-;
 command.com窓(\system32\command.comからVzerは引っぱるのです)では、何
も起こりませんでした。複雑だなぁ。

 上以外の件は、明日あたりに。m(__)m

 wild.(com|exe) をXPな現在に ver up するのが、そう簡単ではないことは
了解です。
 それでも、wild.com で、バッチをダダダと書いてもらえるのは幸せです。m(__)m
 だって、今のところ、「^」だけですから。 すでに300回くらいは使ってい
て、不具合でていないのです。しつこいかもしれませんが、ありがとうございま
す。seder, awker には必携な wild なのです。
・ツリー全体表示

【76】Re:Wild(32)の挙動?
 Si  - 2008/09/24(水) 0:10 -

引用なし
パスワード
   ▼文太さん:
> というわけで、逃げ道は何とおりか見つかりましたので、大変だな、と思った
>らコマンドライン上での文字消え現象については覚悟して臨みますので、無理を
>なさらないでくださいね。深そうでもあるし…。

どうもご理解ありがとうございます。取り急ぎこちらだけレスしておきます(LOGSORTW のカレンダーの件はまた後ほど)。

クオート処理の話しとはちと離れますが、コマンドプロンプトでの ^ は特殊文字だったようです。

C:\>Wild -D "Ygrep \"^foo$\" $f >>c:\kek" c:\xyz\*.*

これは、

C:\>Wild -D "Ygrep \"^^foo$\" $f >>c:\kek" c:\xyz\*.*

こうしてやることで "^foo$" となりました。^ を ^ でエスケープしてやるのです。ただし、確認したのは XP SP3 のコマンドプロンプトだけですが。

コマンドプロンプト自体は毎日のように使う機会があるのですが、使い込んでないのがバレバレでした ^^;

ただし、これが有効なのは WILD.COM だけです。

WILD.EXE の方はやはり最初と同じ結果でした。コンパイラは同じものを使っているのでコーディングに問題があるのだと思います。

いずれにしても、WILD.COM、WILD.EXE 共に MS-DOS汎用なので(おまけに WILD.EXE の LFN対応機能は Windows9x でしか利用できない)、 32bit版への移行をやらなければならないのですが、ソースを見たら DOSべったりなコーディングになっていまして、ちょこっと手直しして 32bit版コンパイラで「はいok」と云うわけにはいかないようです。

以下は余談ですが、XP のコマンドプロンプトで

C:\>^

を実行してみてください。結果は見てのお楽しみ。
・ツリー全体表示

【75】Re:Wild(32)の挙動?
 文太  - 2008/09/22(月) 20:45 -

引用なし
パスワード
   Siさん

> それと、68番の書き込みを見て思いついたのですが、WILD にバッチファイルを
> 渡す、と云うのはどうでしょう?
> (hoge.bat)
> Ygrep -N -f mix.pat "^v\.c\./vz" %1 >> C:\MWK2\vz.log
> wild -d hoge.bat C:\MWK\*.LOG
> 実際に試した訳ではないので大変恐縮ですが・・・

 おお、完璧でした。コマンドラインに追加リダイレクションが出ないので、一
瞬、あれ、と思いましたが、バッチの【中身】がコマンドラインで展開される必
要はありませんね。ちゃんと80回、バッチを実行してくれました。パチパチパチ。
そう、あの手のバッチは機械に書いてもらいたい。(^^;

 wild のタイムスタンプ、ファイル名、すいませんでした。 LFNが使える=
32ビットとばかり思いこんでいました。LFN用のライブラリーを使用したら
com モデルに収まらなくなった、みたいなのが、exe モデルにした理由かな、と
空想・妄想しました。タイムスタンプの方は、そんなのそう安直に変えたりしな
いんだけどな、とは思っているのですが。リネームは間違いなく僕がやってます。
LFNが使えるワイルドで、wildl.exe(今回のネーミング)。


 実は、Ygrep についても発見がありました。Si さんには明らかに釈迦説なの
ですが、 grep, sed, awk はワンライナーするとき、それが複数のコマンド(ス
クリプト) だと -e "hoge" -e "foo" なんてしますし、ちょっと複雑だと -f と
スクリプトを指定するじゃないですか。だから、ま、グレップで -f はも大袈裟
だけど逃げ道はあると思っていたわけです。だから、ちょっと贅沢な(我が侭な)
不具合修正願いだと最初思ったわけです。ところが、ygrep のブロック定義を使
うと(これがおいしい!)-f hoge.pat の部分を取られてしまうので、-f 検索
パターンファイル が書けないよ、大変だよ、と半ばパニックしたわけです。こ
こまで思い至ってバッチの実験が成功したので、よかった、と本当に逃げ道はあ
ったのだと安堵したのです。

 ところがところが、バッチの実験したあと

>type pat.txt
^v\.c\./vz

>Ygrep -f mix.pat -f pat.txt object.log >result

 とやってみたら、あら! 通る! ブロックをきちんと認識したうえ検索パタ
ーンが含まれている記事を抽出してきました。ygrep、すごい! となりました。

 というわけで、逃げ道は何とおりか見つかりましたので、大変だな、と思った
らコマンドライン上での文字消え現象については覚悟して臨みますので、無理を
なさらないでくださいね。深そうでもあるし…。

 とはいえ、こんなのをワイルドに挟めたりしたら、かっちょえー、という気分
にはなれるなぁ、なんて気持ちは残ってはいますが。

>Sed -e :a -e "$!N;s/\n=/ /;ta" -e P;D file

 あ、意味は、
If a line begins with an equal sign, append it to the previous line
and replace the "=" with a single space.
です。僕が書いたのでは、もちろんありません。この書き方はsedを選びます。

                                 文太
・ツリー全体表示

【74】Re:難しいのかもしれない要望です(logsort...
 文太  - 2008/09/22(月) 0:57 -

引用なし
パスワード
   Siさん、完璧です。m(__)m

c:\>type TEST.LOG
00043/99999 MIX00000 xxxxx      dummy title
( 4)  91/01/13 05:17 00041へのコメント

00056/99999 MIX00000 xxxxxxxx     dummy title
( 4)  91/00/-1 07:46 00051へのコメント

00060/99999 MIX00000 xxxxxxxxxxxxx  dummy title
( 4)  91/01/15 00:45 00031へのコメント

c:\>Nifsortw TEST.LOG
Reading: TEST.LOG
Error! 発言ヘッダが不正です
TEST.LOG (5)
Skip!


 どうしようかな、と随分ながいあいだ悩んでいたのですが(ちょっと大袈裟)、
結局、僕はBBSやメーリング・リストのログを、nifty のログ・ヘッダに書き
換えることで一元的に管理することにしました。けっこう色々なパターンがあっ
て、 sed を使い awk を使い、最後の仕上げ(大抵面倒な処理が残るので、それ
はカーソルを飛ばしながら細かな条件判断をする処理)はVzマクロで、ヘッダ
変換をしてくれるシステムを構築しました。

 それは、 どうログが重複していても、 順番がずたずたでも、 最後の最後は
logsort.exe が、その一番大変なところは面倒見てくれるから、という安心感の
ためだったのです。

 発言ヘッダはふつうシステムが付けるものなので、そこに不正であることは想
定されてないのは当然なのですが、上のような理由で、個人的に、ほんとうに助
かる仕様になりました。ありがとうございます。すごいですね、やっぱり。本物
のプログラマーは。 (プロというわけではないのかもしれませんが)Si さんツ
ールのお陰で、まだまだ Vzer! m(__)m


追伸:個人的にそういうのはその前の段階できちんとはじいてますので問題ない
のですが、意地悪して以下を通したら、通ってしまいました。細かくやろうとし
たらカレンダーを内蔵しなくちゃですからね。

00056/99999 MIX00000 xxxxxxxx     dummy title
( 4)  91/13/15 07:46 00051へのコメント        #

00056/99999 MIX00000 xxxxxxxx     dummy title
( 4)  91/13/35 07:46 00051へのコメント        #


追伸2: wild+batch は明日、試します。いえ、グレップといえども、たぶん大
抵パターンをスクリプトから与えることはできると思いますので、逃げる方法が
ないわけでもないだろうと思っています。 ただ、sed や awk でも、ワンライナ
ーがすぐ使えるようになると、やっぱり道具を思うように使えるようになったと
感じられるので、といった感じなのです。 やっぱり、wild に関して言えば、マ
クロがすごいです。$f, $x, $b, $d 秀逸!!!
・ツリー全体表示

【73】Re:Wild(32)の挙動?
 Si  - 2008/09/21(日) 21:46 -

引用なし
パスワード
   ▼文太さん:
>WILD32  EXE   16893 99-02-03  11:50    ;これには退場願いましょう m(__)m
>WILDL  EXE   16893 99-02-04  1:50    ;先ほど落としました。

タイムスタンプがちょっとアレですが、ファイルサイズからみて同じものではないかと。
version 1.34 と 1.50 は、com版、exe版と云うことではなくて、1.50 は(同じ16bitDOS版ですが) LFN対応させたものです。何故 com を exe にしたのかは忘れました ^^;

拡張子抜きで wild とタイプして実行すると comの方が優先的に起動されるので、たぶん文太さんがご自分でリネームされたのではないでしょうか?

うーん、それとも実際に2月3日に一旦公開したものの何かミスに気付いて(ファイル名に 32 を付けてしまったとか)あわてて差し替えた、と云う可能性も否定できません。9年前のことなので記憶がどこかへ行ってしまってます。

それと、68番の書き込みを見て思いついたのですが、WILD にバッチファイルを渡す、と云うのはどうでしょう?

(hoge.bat)
Ygrep -N -f mix.pat "^v\.c\./vz" %1 >> C:\MWK2\vz.log

wild hoge.bat C:\MWK\*..LOG

実際に試した訳ではないので大変恐縮ですが・・・
・ツリー全体表示

【72】Re:難しいのかもしれない要望です(logsort...
 Si  - 2008/09/21(日) 21:22 -

引用なし
パスワード
   あら?
投稿時にファイルをアップロードしたのですがうまく出来ていないようです。
と云うことで本サイトの方にアップしておきました。
直リンクを貼っておきます。

ttp://dmz.xrea.jp/dahlia/soft/lsrtw125-bunta.lzh

投稿制限の禁止語句に引っかかるので先頭の h は省いてあります。補完してください。
・ツリー全体表示

【71】Re:難しいのかもしれない要望です(logsort...
 Si  - 2008/09/21(日) 20:56 -

引用なし
パスワード
   ▼文太さん:
> 不正場所の行番号を出してやってくださいませ。m(__)m

対応させてみました。

実際のログが手元にないので動作確認は起動確認だけです。
ユーザーさんに試していただく格好になってしまいますが、よろしくです。
・ツリー全体表示

【70】Re:Wild(32)の挙動?
 文太  - 2008/09/19(金) 12:30 -

引用なし
パスワード
   C:\>command.com /cdir c:\bin\wild*

WILD   COM   12396 98-06-12  1:34
WILD32  EXE   16893 99-02-03  11:50    ;これには退場願いましょう m(__)m
WILDL  EXE   16893 99-02-04  1:50    ;先ほど落としました。
                    ;前にRCPのときにも古い
                    ;ヴァージョンを使っていたこと
                    ;がありました。ったく>自分。
                    ;m(__)m

 ソースの件も了解しました。 (しつこいのですが)そ、それでも、wild.com
だけでもよいので、どうか、どうか宜しくお願いします。逃げる方法は、あんな
ことしなくても色々あったな、と今思っているところですが。m(__)m
・ツリー全体表示

【69】Re:難しいのかもしれない要望です(logsort...
 文太  - 2008/09/19(金) 12:28 -

引用なし
パスワード
    犯人はこいつ。

> 05684/99999 MIX00000 おかけし     dummy title
> ( 4)  -1/-1/-1 -1:-1

 憎たらしいので、ここでは意味ないのですが、引用符を付けてやりました。
 犯人は文字化けではなく、生ヘッダでした。く、くそう。

 「ぐすん、nifsort が教えてくれないなら自分で探すしかないぞなもし、めそ
めそ」と言いながら昨晩寝たのですが、一晩寝たら考えつきました。

--------------------------------------
C:\>wc -l c:\kek
  7958

C:\>head -3500 c:\kek >kek2

C:\>nifsort kek2
Reading: KEK2
Sorting[1167]
...Writing
...Finish

C:\>head -4000 c:\kek >kek2

C:\>nifsort kek2
Reading: KEK2
Error! 発言ヘッダが不正です
Skip!
--------------------------------------

 ヘッダ部分をグレップ。7958 行。
:A 半分に切っていって、nifsortにかける。ループ>A
 上の場合、3500から4000の間が苦闘でした。

 不正場所の行番号を出してやってくださいませ。m(__)m

追伸:logsort(w) (=nifsort)も最新版にしました。v(^^) m(__)m
・ツリー全体表示

【68】Re:Wild(32)の挙動?
 文太  - 2008/09/19(金) 2:09 -

引用なし
パスワード
   Siさん、すぐさま返信いただきありがとうございます。

>  まず、Wild32 と書かれているのは version 1.50 βとして公開しているもの
> でよろしいですね?これは茶々をいれるつもりでは全くなくて念のための確認で
> す。
> version 1.34  → WILD.COM
> version 1.50β→ WILD.EXE
>  現在 Web で公開しているのはこの2バージョンでどちらも dos汎用なので、
> 32bit版を探してしまいました ^^;

 す、 すいません。 そうか、あれはとりわけ32ビット版ではないのか。.com
モデルと .exe モデル?

>  で、ご指摘の動作ですが、こちらでも確認しました。コマンドラインパラメー
> タの処理の問題ですね。

 出ちゃいますよね、やっぱり。(>_<)

>  うーん、1.50βは同梱の WILD.TXT にも書いてあるのですがソースが残ってい
> ません。それもあって、以前は 32bit版 Wild を作ろうと思いつつも、結局放置
> 状態のまま今に至っています。
>  幸い version 1.34 の方のソースはあるのでちょっと手を付けてみようかと思
> いますが、いますぐにとはいきません。すみません。

 時間があるときで構いません、どうか宜しくお願いいたします。

 いえ、僕がwildを愛用するようになってから随分になります。それでもMS-DOS
とそれなりに真剣につき合い始めた頃は、多くのSiツールの意味が分かりません
でした。最初、何するもの? と思っていたものです。でも、じわじわと、これ
らのすごさが分かるようになってしまったののです。ようやく「理解のレベル」
で20年前のSiさんに僕は追いついたのでしょうか。

 はい、 '^'がwildで危ないと知ってから、ワイルドカード展開なしで、先ほど
書いたバッチは、

Ygrep -N -f mix.pat "^v\.c\./vz" C:\MWK\LIB0489.LOG >> C:\MWK2\vz.log
Ygrep -N -f mix.pat "^v\.c\./vz" C:\MWK\MIX0107.LOG >> C:\MWK2\vz.log
 (以下、80行続く)

です。
 で、 このバッチを書くのも、 sedスクリプト1つ、awkスクリプト1つです。
(シリアスな置換になるとVzはちょっと信用できないところがあるのです。も
ちろん、スクリプトを書くのはVzなんですけどね。変わろうとしない人なので
す>文太くん)

 ね、wildの有り難みを、嫌でも味わってしまっているでしょう。m(__)m

>  しばらくは「不具合がでないサンプル」のような運用で凌いでくださいますで
> しょうか。

 凌がせていただきます。方法がないわけではないので。そういうのばっかの人
生なんだよなぁ…。Vzといい、あれといい、これといい…。でも、バッチのた
めのsedスクリプトやawkスクリプトの時点で間違えちゃうと、「え?! 何やって
るんだっけ?」ってなるんですよね。はたまた、そのsedスクリプトでwildのお世
話になったり。
 いたちごっこばっかりの人生。

>  引数のクォート処理については処理系に依存する、とか云う話もその昔に耳に
> した記憶があるので、自分みたいな素人の手に負えるかどうか・・・

 お、お願いします。どうか、どうか処理系を読み切ってください。お願いしま
す。m(__)m
 パイプもリダイクトも、' 'ではエスケープできないのです。MSの呪いみたい
ではありますが。wild 自身も深くはまってしまいます。m(__)m

文太
・ツリー全体表示

【67】Re:Wild(32)の挙動?
 Si  - 2008/09/19(金) 1:12 -

引用なし
パスワード
   文太さん、ご無沙汰しております。

まず、Wild32 と書かれているのは version 1.50βとして公開しているものでよろしいですね?これは茶々をいれるつもりでは全くなくて念のための確認です。

version 1.34  → WILD.COM
version 1.50β→ WILD.EXE

現在 Web で公開しているのはこの2バージョンでどちらも dos汎用なので、 32bit版を探してしまいました ^^;

で、ご指摘の動作ですが、こちらでも確認しました。コマンドラインパラメータの処理の問題ですね。

うーん、1.50βは同梱の WILD.TXT にも書いてあるのですがソースが残っていません。それもあって、以前は 32bit版 Wild を作ろうと思いつつも、結局放置状態のまま今に至っています。

幸い version 1.34 の方のソースはあるのでちょっと手を付けてみようかと思いますが、いますぐにとはいきません。すみません。

しばらくは「不具合がでないサンプル」のような運用で凌いでくださいますでしょうか。

引数のクォート処理については処理系に依存する、とか云う話もその昔に耳にした記憶があるので、自分みたいな素人の手に負えるかどうか・・・
・ツリー全体表示

【66】難しいのかもしれない要望です(logsortw)...
 文太  - 2008/09/19(金) 0:47 -

引用なし
パスワード
   Siさん

 Nifsortwに

Error! 発言ヘッダが不正です
Skip!

 と怒られています。このメッセージが出るとき、何行目で引っかかっているの
か出力して頂くわけにはいかないでしょうか。

 「何してるの? 」ものではありましょうが、ログ的なものに nifty 形式ヘッ
ダを入れると、情報管理が楽なわけなのです。BBSのログにしろどっかの過去
ログにせよ、nifty の形式にしておくと。
 それで、VzマクロやSedあるいはAwkスクリプトでヘッダ変換をしたり
しているわけなのです。が、「うーん、どこがいけないんだぁ〜」と泣くはめに
なっております。せめて何行目か教えて下さいよ、と LOGSORTW にお願いしたい
わけなのです。

 目では確認できないけれど、元データにマクロが異常動作するような、たとえ
ば「文字化け」のようなものが混入している可能性がきわめて高いと思っていま
す。実は先日、logsortw のソースを見てしまいました。nifty ログの場合には、
日付の行を読むのに「次行読み」をしているから…とかまでやったのです。その
ときはうまくいったのに…。

 どうせ行番号管理してますよねぇ…。sedだってしてるもん。

 「おじえてぐだざい、どこではじいているのか、おねがいじまず。logsort様」

文太
・ツリー全体表示

【65】Re:Wild(32)の挙動?
 文太  - 2008/09/18(木) 22:16 -

引用なし
パスワード
   Siさん

 すいません、こういうボケが多いこの頃でして。以下では「不具合がでません」
を示してくれていませんでした。結果は同じなのですが、不具合がでないサンプ
ルを下に貼りました。m(__)m

> 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

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

 これ、wildが必要な場面なの? と突っ込まないでください。
 grepであっても、必要な場面が、もちろんあるのです。
 あくまで実験用サンプルですので。m(__)m
・ツリー全体表示

【64】Wild(32)の挙動?
 文太  - 2008/09/18(木) 20:10 -

引用なし
パスワード
    ご無沙汰しております。 お世話になってばかりの文太です。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
・ツリー全体表示

5 / 9 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
14,052
(SS)C-BOARD v3.8 is Free