11679/11538 CRG00666 文太 おち
( 0) 24/11/23 16:33 11678:konnoさんへのコメント コメント数:2
konnoさん
>パスを順に見ていったら、\tc\ の中にありました。(^^;
> C:\TC のディレクトリ
>1989/05/11 02:01 7,029 GREP.COM
ここでいちばん笑いました。
で、その2つの32ビットGNU・GREPなのですが、動きます?
もちろん、僕は昨晩DLしたのを解凍したのですが、pcre32.dllがない、
とかで動かせませんでした。
2009/02/13 09:19 96,256 grep.ex
2009/02/13 17:19 96,256 grep.exe 元のファイル
このタイムスタンプの差には気が付いていました。
>リネームして退避していた実行ファイルを戻す。と言う操作をしたときに
>誤操作したのか?
ありえますね。
わざと、exe -> ex をした可能性もあるかも。意図してやったのに、
忘れた、とか。僕ならありえます。
しょうがないので、超絶技を披露いたしましょう!
11680/11538 CRG00666 文太 超絶技@VTDOS
( 0) 24/11/23 16:39 11679:文太さんへのコメント コメント数:1
32ビットアプリでグレップしたい。ディレクトリ再帰もさせたい。
32ビットのグレップはどうもあまりうまいのが見つからない。
では、32ビットの awk、mawk32.exeにやってもらおう。awkに
ディレクトリ再帰の機能はないから、wild32.exe に手伝ってもらおう。
方針は、
(1)ヒットするファイルをディレクトリの奥深くに置いておく。
(2)グレップ用スクリプトは、「あ」がいっぱい並ぶ行をグレップ(抽出)せよ。
(3)wild32 でリカーシブせよ。
(4)結果は大量の0バイトファイルと、少数のヒット行を含む、対象と同名のファイル、
となるはず。
C:\WK>type t.txt ;これにヒットさせるつもり(1)
ああああああああああああああああああああ ;20個のはず。see ★
C:\WK>move t.txt c:\tk\vzlog\dc\01 ;ヒットさせるファイルをvzlog
;ディレクトリの奥に置く
C:\WK>type t.awk ;awk スクリプト(printを省略できる)
/あああああああ+/ ;(2)これでグレップと同じ機能
C:\WK>wild32 -R "mawk32 -f t.awk $f >c:\wk\$x" c:\tk\vzlog\dc\*.*
expand wildcard & excute command - WILD version1.50 (c) 1996-99 by namazu & Si
74 file(s) is found ;74個の対象ファイルです! 74個グレップせよ。
;wild32 でリカーシブ(再帰)だ(3)
C:\WK>dir ;結果です
C:\wk のディレクトリ
2024/11/23 15:55 0 DC01~012.LOG ;対象ファイルと同名の結果ファイル
2024/11/23 15:55 0 DC02.LST ;もちろん、ノン・ヒットなので
2024/11/23 15:55 0 DC02_968.LOG ;ゼロバイト
2024/11/23 15:55 0 DC02_981.LOG
2024/11/23 15:55 152 DC06C967.LOG ;ここには偶然、いっぱい
(いっぱい中略) ;「ああああああ」がいた
2024/11/23 15:55 0 DC18C995.LOG
2024/11/23 15:55 0 DC18C996.LOG
2024/11/23 15:55 0 DC19C973.LOG
2024/11/23 15:55 0 DC19~021.LOG
2024/11/23 15:55 0 DC19~027.LOG
2024/11/23 15:55 0 DC20B9A1.LOG
2024/11/23 15:48 27 t.awk ;スクリプト
2024/11/23 15:55 42 t.txt ;ヒット! 結果ファイルです。
;15:55 が上のノンヒットのログと同じ
;★=「あ」が20個+CRLF
繰り返しっぽいですが、vzlog\dc 以下に74個の対象ファイルがあり、
c:\wk に74個の結果ファイルができるあがる仕組みです。
同じことが、DOSVAXJ3 で、できればいいんじゃない?
32ビットアプリX2、ですが。
11681/11538 CRG00666 文太 超絶でも何でもない
( 0) 24/11/23 19:27 11680:文太さんへのコメント コメント数:1
C:\WK>type c:\tk\vzlog\dc\01\t.txt
愛愛愛愛愛
C:\WK>yagrep -r "愛愛愛愛愛" c:\tk\vzlog\dc\*.*
c:\tk\vzlog\dc\01/t.txt:愛愛愛愛愛 ;最後だけスラッシュなのは、
;その前までをコマンドラインから
;コピーしてるからでしょう。
;読みづらい。
C:\WK>ygrep -r "愛愛愛愛愛" c:\tk\vzlog\dc\*.*
c:\tk\vzlog\dc\01\t.txt 1:愛愛愛愛愛 ;読みやすい!
同じテストが上のかたちでできたのは、yagrep.exe と ygrep.exe だけでした。
前回と同じく74個のファイルを舐めたはずです。
もちろん、yagrep.exe は32ビット、ygrep.exe は16ビットアプリです。
yagrepは、「表」「十」とかでもこけた。残念、信頼感なし。
ygrepは、このあたりは見事クリアしました。
wgrepは、再帰では動かせなかった。
もちろん、VTDOS環境です。
11682/11538 CRG00666 文太 wgrep -u について
( 0) 24/11/23 20:54 11681:文太さんへのコメント コメント数:2
wgrep.doc を読んで、なんでできない? に答えを求めました。
考察の結果です。「再帰」ではないです。
一層下だけ、という意味みたいです。wgrep.docからは、そうは読めないと
思うけど。
----- wgrep.doc -----
----------------------------------------
-u :サブディレクトリも検索
----------------------------------------
該当のディレクトリ下の全てのディレクトリ、ファイルを検索対象とします。
検索の対象となるディレクトリは以下の様になります。
[ドライブ:][¥][ディレクトリ¥]ファイル名
| | |
| | +----ワイルドカードが利用出来ます。
| +----ディレクトリの先頭に\が無いとカレントディレクトリ下のディレクトリを検
| 索対象とします。
+----ドライブの指定が無いとカレントドライブを対象とします。
例を次に示します。
a:\test.* Aドライブの全ファイル中でtest.*のファイル
\test.* カレントドライブの全ファイル中でtest.*のファイル
a:\work\test.* Aドライブのディレクトリwork下の全ファイル中でtest.*のファイル
work\test.* カレントドライブのカレントディレクトリのディレクトリwork下の全ファイル中で
test.*のファイル
---------------------
C:\>wgrep -u "愛愛愛" C:\tk\vzLOG\dc\01\*.*
------------------ C:\TK\VZLOG\DC\01\T.TXT
愛愛愛愛愛
C:\>wgrep "愛愛愛" C:\tk\vzLOG\dc\01\*.* ; -u オプションなし
------------------ C:\TK\VZLOG\DC\01\T.TXT ; 結果は上に同じ。-u の意味、ないじゃん
愛愛愛愛愛
C:\>wgrep -u "愛愛愛" C:\tk\vzLOG\dc\*.* ;dcフォルダの下の01フォルダに
ファイルが読めません ---> C:\TK\VZLOG\DC\*.* ;ヒットすべきファイルがある
「再帰」を使いたい場合は、ygrep.exe にお仕事を頼むのが良いと思います。
nifty 過去ログに、これに関する発言はなかったようです。誰も使ってない。
総じて、Windows 時代になってからの、これらテキスト処理ツールの進化は
あまり大きなものではなかった、ということだと思います。
みなLinuxが普通に使えたので、Windows のコンソールでテキスト処理を
する必要がなかったのでしょう。GNUもののWin32への移植も、あまり輝かしい
成功をおさめたとも思えませんし。
僕は、特殊な場合以外(PCオーディオ)、とりわけLinux的世界に
魅力は感じていませんが。
純DOS機とWinME。これらをはやく調整して調達しないと。
11683/11538 CRG00666 文太 wild.exe or VTDOS の限界
( 0) 24/11/23 21:38 11682:文太さんへのコメント
wild32 + mawk32 の組み合わせはうまくいきました。
で、あれは、フィルター系ツールの使い方だからな、「再帰」のない普通のgrepで、
そこに「再帰」を追加する、普通のgrepの使い方を書いておこう、と試しました。
通じないかもしれませんが、$x がフィルター系の使い方なのです。
つまり、sed や awk で、複数ファイルを処理するとき、結果も入力と同じだけの
数のファイルが欲しい。だから、$x が必要になる。
グレップは、結果ファイルが1つで(ふつう)いい。すると、以下のようになる。
wild -R "izgrep -e 愛愛愛 $f >>c:\wk\kek.txt" c:\tk\vzlog\dc\*.*
wild -R "grep -e 愛愛愛 $f >>c:\wk\kek.txt" c:\tk\vzlog\dc\*.*
($x の部分が、>>kek.txt と決め打ち)
-r (recursive)のない、普通のgrepに、wild.exeに参加してもらって、「再帰」
の機能を加えようとしています。
VTDOS環境ではダメでした。
純DOSやWinMEなら、きっと素直にできるのだろう、と思っています。
(Win11 じきじきのエラーメッセージがそれらしかったから)
ま、wild32 + mawk32 (とは限らないだろう)が、VTDOS 環境で、なかば奇跡的に
可能だった、と思っておいて良いように思います。
「再帰」が欲しければ、ygrep.exe が十分な仕事をしてくれるはずです。
けっきょくこういうの、好きなんだなぁ。
睡眠不足と戦ってます。糖尿病とも戦ってます。
11684/11538 CXB00940 としき Re: 文太のグレップ(複数)ほか
( 0) 24/11/23 23:36 11671:文太さんへのコメント コメント数:2
参照先:http://toshiki.la.coocan.jp/
> C:\>dir c:\bin | grep -i "grep"
> 1992/05/03 06:47 78,419 CGREP.EXE
> 1994/10/06 13:01 50,672 DGREP.EXE
> 1994/06/02 18:50 90,959 EGREP.EXE
> 2003/04/14 00:00 80,412 FGREP.EXE ;サイズが違うのでリネームではない
> 1994/06/02 18:50 90,959 GREP.EXE
> 1993/04/11 16:05 23,997 IZGREP.EXE
> 1994/04/30 10:07 66,700 YGREP.EXE
あはは、懐かしいものがいっぱい。
うちの場合はこう。
c:\>dir /s c:\*.exe c:\*.com | find /i "grep" | sort /+36
1994/10/06 00:00 50,672 DGREP.EXE
2000/09/13 17:21 69,632 egrep.exe
1986/03/11 02:09 10,260 FGREP.EXE
1998/08/31 04:00 102,400 grep.exe
1988/05/02 02:56 17,551 GREP.EXE
1993/12/01 01:53 19,884 WGREP.COM
CGREPは評価はしたことはあるはず。
http://toshiki.la.coocan.jp/computer/library/ls-lr.txt
によると、持っていることは持っているから。バージョンは違うかもしれないけど。
DGREPは同じものっぽいけど、微妙にタイムスタンプが違うのはなぜだろう。
egrepはいろいろと謎。タイムスタンプから32ビット対応だとは思う。ドキュメント
の類似性から新出さんのUnix like toolsのものだと思うけど、ドキュメントには
日本語非対応と明記してあった。そして、そのドキュメントには、同一パッケージ内
にjegrepが同梱されていると書いてあったけど、なぜか私は使っていない模様。
そしてドキュメントには、遅いと明記してある。
FGREPは ASCII tools の名ばかりgrep。なぜ名ばかりかというと、正規表現に対応して
いないから。きちんと対応したのがGREP.EXE。一方、grep.exeのほうはDELPHIの
おまけのツール。使ったことがない。
WGREPはなぜ文太さんが使っていないのか、不思議。
余談ですが、IZGREPとYGREPも、ドキュメントは読んだ記憶があるような。
そして、他のGREPにはなくてこれらのGREPにある機能で私が必要とするものがないので
導入しなかった、ようなうろ覚えの記憶。
一方でyagrepは、私は明らかに使ったことがない。入手したことすらないはず。
11685/11538 BQO00549 konno Re: おち
( 0) 24/11/24 00:02 11679:文太さんへのコメント コメント数:2
> で、その2つの32ビットGNU・GREPなのですが、動きます?
> もちろん、僕は昨晩DLしたのを解凍したのですが、pcre32.dllがない、
> とかで動かせませんでした。
このDLLは ZIPの中には無いですね。私は多分 SETUP.EXE から落としたのでしょう。
#11677
> #10343: Re: win7 bupdate 投稿者: konno 2022/10/18
> このあたりが近いかもしれない。
多分そのころです。
2018/10/06 00:36 451,824 grep-2.5.4-bin.zip
この日付の前は #8214
> > >Grep (GNU) 需要予測 1.txt
> > 需要予測
> おお、GNUGrep は大丈夫なんですか。
> ちょっと探してみます。
多分この後に落としたんでしょうね。
私の使い方では検索漏れも少ないみたいなのでこれ以降再帰検索ではずっと愛用しています。
WILD は GREP で使うにはあまり向いていないと思うので、別の機会に。
11686/11538 CXB00940 としき Re: wgrep -u について
( 0) 24/11/24 00:03 11682:文太さんへのコメント コメント数:3
参照先:http://toshiki.la.coocan.jp/
> wgrep.doc を読んで、なんでできない? に答えを求めました。
> 考察の結果です。「再帰」ではないです。
> 一層下だけ、という意味みたいです。wgrep.docからは、そうは読めないと
> 思うけど。
それはおかしい。
私、PC-98の時代から、該当ディレクトリ下部一括検索をする時はいつもwgrepを
使っていました。そして、30年余りの経験で、検索漏れに気がついたことは
一度もない。
そして今、WinXPをひっぱりだしてきてVTDOS122でwgrepを使ってみました。
結果、少なくとも3階層くらい下までは引っ張ってきてくれています。
なお、以下表示の右端側は省略しています。
> VTDOS|D:\TOSHIKI\NIF>type C:\FREEWARE\DOS\WGREP.CFG
> -i -j15 -s7 -u -h3 -t
>
> VTDOS|D:\TOSHIKI\NIF>wgrep -u "grep" *.txt
> NIFTY\FGALDC\MES13\09260.TXT 14:これは grep を使って検索するときも同様でし
> NIFTY\FGALDC\MES13\09260.TXT 18:定正規表現を使わずに検索できる時には、grep
> NIFTY\FGALDC\MES13\09266.TXT 7:》定正規表現を使わずに検索できる時には、grep
(以下略)
少なくとも私のVTDOS環境では、PC-98の生DOS環境と同様、きちんと再帰検索できて
います。
> 「再帰」を使いたい場合は、ygrep.exe にお仕事を頼むのが良いと思います。
こちらに対しては特に異を唱えるものでもありませんが、
> nifty 過去ログに、これに関する発言はなかったようです。誰も使ってない。
こちらに対しては小異あり。
ygrepを誰も使っていない、なんて事はないと思う。
あるいは、仕様どおりというか全く何も問題がなかったから発言がなかった、という
見方もできるかも。
> C:\>wgrep -u "愛愛愛" C:\tk\vzLOG\dc\*.* ;dcフォルダの下の01フォルダに
> ファイルが読めません ---> C:\TK\VZLOG\DC\*.* ;ヒットすべきファイルがある
うん、実は気がついていない人が多いのですが、こうなる可能性があるパターンと
いうのがありまして。
dcフォルダの下の01フォルダにヒットすべきファイルが仮にあったとしても、
dcフォルダそのものにファイルが1つもない場合、このメッセージが表示されるの
ですよ。
その場合、dcフォルダにダミーファイルを1つ作ってやれば、うまくヒットします。
ファイル名は何でもよろし。dummy.xlsでも何でもOK。
11687/11538 CXB00940 としき Re^6: ren grep fgrep
( 0) 24/11/24 00:12 11678:konnoさんへのコメント コメント数:2
参照先:http://toshiki.la.coocan.jp/
> FC BIN で比較すると中身は同じでした。・・・ん? もしかして標準時間の差?
> どうもコピー時にトラブってこうなったように見えますが、わかりません。
う〜ん、8時間の差、というのがよくわかりませんね。
9時間の差、というのはUTCとJSTの解釈ミスで時々見かけますけど。
あと、かなり昔のアメリカ製の圧縮ソフトで、夏時間の解釈を間違って圧縮時だか
解凍時に1時間狂わせる、というのがあったそうですが、最近のソフトでそういう
ものがあるとは思えない。けど、むしろMS純正のソフトでありそうな気がするのは
私の偏見か。
> パスを順に見ていったら、\tc\ の中にありました。(^^;
> C:\TC のディレクトリ
> 1989/05/11 02:01 7,029 GREP.COM
うぉ、これも懐かしいですね。TurboC 2.01だ。
実家に行けば、今でも残っているかも。
11688/11538 CRG00666 文太 Re^2: wgrep -u について
( 0) 24/11/24 00:16 11686:としきさんへのコメント コメント数:2
としきさん
>それはおかしい。
そうですか。はい、としきさんが、wgrepのオプションを環境変数にセット
して使っていたのは、過去ログから(上の内容1行でしたが)知ってました。
>私、PC-98の時代から、該当ディレクトリ下部一括検索をする時はいつもwgrepを
>使っていました。そして、30年余りの経験で、検索漏れに気がついたことは
>一度もない。
なるほど!
>そして今、WinXPをひっぱりだしてきてVTDOS122でwgrepを使ってみました。
ありがとうございました。助かります。
>少なくとも私のVTDOS環境では、PC-98の生DOS環境と同様、きちんと再帰検索できて
>います。
明日、試してみます。
>> nifty 過去ログに、これに関する発言はなかったようです。誰も使ってない。
>こちらに対しては小異あり。
僕が言ってるのは、wgrepの「再帰」のことです。はい、としきさんを除いて、
です。
>その場合、dcフォルダにダミーファイルを1つ作ってやれば、うまくヒットします。
>ファイル名は何でもよろし。dummy.xlsでも何でもOK。
了解。明日、試します。
でも、なんでこんなこと知ってるの? ある種の論理的思考でこうなるはず、
とかあるんですか?
DOSアプリの癖です、とか?
11689/11538 CRG00666 文太 TCと、時間差
( 0) 24/11/24 00:20 11687:としきさんへのコメント
konnoさん、としきさん
>うぉ、これも懐かしいですね。TurboC 2.01だ。
TCって? と思ってました。
やっぱり、TurboC なのか。あれ? konnoさん、Cにも興味があった
のですね。興味ぐらいは、かつて持ってましたよん、でしょうか。
11690/11538 CRG00666 文太 Re^2: 文太のグレップ(複数)ほか
( 0) 24/11/24 00:47 11684:としきさんへのコメント コメント数:1
としきさん
>FGREPは ASCII tools の名ばかりgrep。なぜ名ばかりかというと、
>正規表現に対応していないから。
気持ちは分かりますが、正規表現に対応していたら、fgrep ではないような。
grep (Global Regex Print)ではあるけれど、正規表現を殺してほしい場面は
とりわけプログラマーにはあるのでしょう。もちろん、たいていオプションで
殺せるとは思うけど。>grep -F より、>fgrep のほうが、頭脳的にも楽です。
>WGREPはなぜ文太さんが使っていないのか、不思議。
最初に、jgrep (日本語対応) とか、cgrep, ygrep, izgrep に出会ったから
でしょう。アーカイブをグレップというのは、最初のHDが120MBだった
僕には、必要ある? だったのでしょう。diet も使ったことないし。
>余談ですが、IZGREPとYGREPも、ドキュメントは読んだ記憶があるような。
>そして、他のGREPにはなくてこれらのGREPにある機能で私が必要とするものがないので
>導入しなかった、ようなうろ覚えの記憶。
ygrepが画期的だったのは、niftyログをアーティクル単位で抽出できたから。
そして、ygear.def by とらじがあったから。あのマクロのインターフェイスは、
僕的には最高です。ツールのシェルとしてのマクロの鏡です。
ygrep は、ソースがけっきょく公開されませんでした。
これに立腹していた Bruce.さんは、あれを yagrep 命名したのです。でも、
本人が使わないツールは、やっぱり、、、。yagrep.exe が僕に残した
メッセージは、「なんでygrepのソースは公開されなかったんだよ」でした。
TSで色々あったのでしょう。
izgrepは、速さと、doc の誠実さ、作者の姿勢。そして、sed の機能を
一部もっている、でしょうか。始めて接したときに感動しました。
sed は、sed で、もうその機能をizgrepで使うことはありませんが。
DOS時代のgrepの進化としては、sed の機能を一部内包したgrepというのが
あったのではないでしょうか。
11691/11538 CRG00666 文太 Re^3: wgrep -u について
( 0) 24/11/24 00:59 11688:文太さんへのコメント コメント数:1
以下をどう読むかは難しそう。たしかに普通のディレクトリ構成なら
3階層ぐらいはいけそう。僕の環境では、dcが起点だと、まともなのは
1階層ですけれど。
C:\TK\VZLOG>wgrep -u "愛愛愛" C:\tk\*.*
メモリが不足しています
C:\TK\VZLOG>wgrep -u "愛愛愛" C:\tk\vzlog\*.*
------------------ C:\TK\VZLOG\DC\01\T.TXT
愛愛愛愛愛
メモリが不足しています ;たぶん運よくヒットできた
C:\TK\VZLOG>wgrep -u "愛愛愛" C:\tk\vzlog\dc\*.*
------------------ C:\TK\VZLOG\DC\01\T.TXT
愛愛愛愛愛
でも、ファイルがないディレクトリだけの階層は挟むな、これで
OKです。
としきさんに多謝。すげえな、やっぱり。年季がちがう。
だって、あれだけの連投を読み込んだうえでの、これだよ。
ほんと、ありがと。
11692/11538 CRG00666 文太 konnoさん、掲示板?
( 0) 24/11/24 01:03 11684:としきさんへのコメント コメント数:1
c:\>dir /s c:\*.exe c:\*.com | find /i "grep" | sort /+36
994/10/06 00:00 50,672 DGREP.EXE
あはははは。楽しい。でも、その話でなく、
994/10/06 は
1994/10/06 ですよね。
この掲示板の「あれ」なのでしょうか >konnoさん
11693/11538 CXB00940 としき Re^3: wgrep -u について
( 0) 24/11/24 02:16 11688:文太さんへのコメント コメント数:1
参照先:http://toshiki.la.coocan.jp/
朝起きたら市内一斉清掃に参加しなければならぬ。
こんな時間までネットに首を突っ込んでいる暇はないはず。というのは建前。
とりあえず一つだけ。
> >その場合、dcフォルダにダミーファイルを1つ作ってやれば、うまくヒットします。
> >ファイル名は何でもよろし。dummy.xlsでも何でもOK。
> でも、なんでこんなこと知ってるの? ある種の論理的思考でこうなるはず、
> とかあるんですか?
経験者だから。
いや、実はですねぇ。
私がよくやるのは、*.txt なんてファイル指定なんですが、この場合だと、拡張子が
txt のファイルが一つもないと、他にいくつファイルがあっても、例の読み込めない
というメッセージが出てしまうのですよ。
今回の文太さんの例だと、ファイル指定が *.* となっていたから、ではファイルが
1つもなかったんだろうな、と推測した次第。
そんだけ。
11694/11538 CXB00940 としき Re^3: 文太のグレップ(複数)ほか
( 0) 24/11/24 02:35 11690:文太さんへのコメント コメント数:1
参照先:http://toshiki.la.coocan.jp/
> 気持ちは分かりますが、正規表現に対応していたら、fgrep ではないような。
あぁ、そうか、そうですよね。そういわれてみれば確かにそうかも。
とりあえず私、正規表現を使わない時はOS純正のfindを使うことが多いもので
ついついあんな発言をしてしまいます。
といいつつ、最近のWindowsにはOS純正でfindstrなんてコマンドもあったりする
から侮れない。いつからあるんだろう。WinNT4には既にあったりして。少なくとも
WinXPには存在している。
> >WGREPはなぜ文太さんが使っていないのか、不思議。
> 最初に、jgrep (日本語対応) とか、cgrep, ygrep, izgrep に出会ったから
なるほど。
速くて多機能なものに最初のころに出会えば、そうなりますよね。
私の場合、ASCII toolsが最初だけど、次はwgrepでした。
アーカイブの中の検索なんて機能はほとんど使ったことがないけど、再帰検索と
各種文字の同一視ができるというのは非常にありがたかった。
速いと評判だったのはizgrepですか。
たぶんこれだと思うのですが、速いと評判だったgrepを評価して、当時のニフティの
数百メガバイトのログファイルを検索してみたけど、検索条件が悪かったのか、
wgrepと大差なかったので使わなかった、ということがあったのは覚えている。
具体的な数字なんか当然覚えていませんが、1分半ぐらいのところで10秒ぐらいの
差だったような。とにかく、全ログ舐めてこの程度の差なら、わざわざ手になじんだ
ものから乗り換えるほどの事はないや、と考えるのに十分な程度の差でした。
11695/11538 CRG00666 文太 Re^4: wgrep -u について
( 0) 24/11/24 09:58 11693:としきさんへのコメント コメント数:1
としきさん
>朝起きたら市内一斉清掃に参加しなければならぬ。
おはようございます。そして、お疲れ様でした。近所がきれいに
なりましたよね。
うちは当番制なので、今年は奥様がやってきました。
>> でも、なんでこんなこと知ってるの?
>経験者だから。
なるほど。
>私がよくやるのは、*.txt なんてファイル指定なんですが、
abc??.txt という指定では、いつもできてるのに、今日は「*.txt」で
エラーが出るぞ、という経験があれば、論理的に考えますね。さすが。
経験は強し。
>今回の文太さんの例だと、ファイル指定が *.* となっていたから、
ビンゴ! ディレクトリのみ14個でした。論理的、ふたたび。
C:\TK\VZLOG\DC>dir
2024/11/24 00:48 <DIR> .
2024/11/24 00:54 <DIR> ..
2024/11/23 19:12 <DIR> 01
2023/06/02 20:17 <DIR> 02
2023/06/02 20:17 <DIR> 04
2023/06/02 20:17 <DIR> 06
2023/06/02 20:17 <DIR> 13
2023/06/02 20:17 <DIR> 14
2024/11/23 15:53 <DIR> 15
2023/06/02 20:16 <DIR> 17
2023/06/02 20:16 <DIR> 18
2023/06/02 20:16 <DIR> 19
2023/06/02 20:16 <DIR> 20
2023/06/02 20:17 <DIR> ct
FGALDC 1階から20階まで。じつは、としきさんの
アドバイスで、aaa.txt 0 byte が、今まで入ってました。消したけど。
ygrep.exeにそんな制限ないもん。
11696/11538 CRG00666 文太 Re^2: wgrep -u について
( 0) 24/11/24 10:06 11686:としきさんへのコメント
としきさん
> VTDOS|D:\TOSHIKI\NIF>type C:\FREEWARE\DOS\WGREP.CFG
> -i -j15 -s7 -u -h3 -t ~~~
~~
そうそう、これです。PK/DC ログを、ygrepの「発言アーティクル」
単位検索で、"wgrep:再帰" のアンド検索をしたら、唯一出てきたのが
この部分への言及。「環境変数で設定してます」by としき、でした。
11697/11538 CRG00666 文太 find, findstr, replace, sort /+36
( 0) 24/11/24 10:18 11694:としきさんへのコメント
としきさん
>正規表現を使わない時はOS純正のfindを使うことが多い
find, findstr, replace そのうち調べておきましょう。
あのパイプ技は、笑った。| sort /+36 は、僕には出なかった。ssortを
別プロセスで使っていたでしょう。
>私の場合、ASCII toolsが最初だけど、次はwgrepでした。
僕のVz(wgrep)との付き合いは遅いんです。「松」と「エコロジー」
の時代が長く、そして日野図書館でみつけたディスクつきのPC本。
>速いと評判だったのはizgrepですか。
ま、時間差は、じつは大したものでもないでしょう。VTDOS環境のXXさ
にも、もうすっかり慣れてるし(というほど、PC自体を使ってない)。
先日ちらと izgrep.doc を読んだら、「出力が大きいと差が感じられない
かもしれない」とありました。結果のプリントは膨大な時間がかかるみたい。
これで検索自体の差が帳消しになる、とか。
11698/11538 CRG00666 文太 Re^2: おち
( 0) 24/11/24 10:36 11685:konnoさんへのコメント
konnoさん
なんだか、すごい怒涛になってしまいました。
すみませね。
>このDLLは ZIPの中には無いですね。私は多分 SETUP.EXE から
>落としたのでしょう。
なるほど。そういうパッケージの仕方、みたことあります。
いつか探すかも、、、。
>WILD は GREP で使うにはあまり向いていないと思うので、別の機会に。
はい、まったくその通りだと思います。ygrep.exeで足りると思います。
11699/11538 CXB00940 としき Re: konnoさん、掲示板?
( 0) 24/11/24 10:40 11692:文太さんへのコメント コメント数:1
参照先:http://toshiki.la.coocan.jp/
> この掲示板の「あれ」なのでしょうか >konnoさん
あれ、というか「癖」っぽいですね。うん、「ヤマイダレ」のついている漢字だ。
mode=msgviewのときだけ発病する感じ。
allreadとかnewsortの時はきちんと欠落なく表示してくれているから。
そして、行頭が半角「1」は欠落するけど半角「2」なら大丈夫、というのも不思議。
どうすればこうなるんだろう。
11700/11538 CXB00940 としき Re^4: wgrep -u について
( 0) 24/11/24 11:04 11691:文太さんへのコメント コメント数:1
参照先:http://toshiki.la.coocan.jp/
> でも、ファイルがないディレクトリだけの階層は挟むな、これで
> OKです。
いってることは伝わるかもしれませんが、としき的には微妙に不正確。
カレントに .txt のファイルがあれば、以下の階層に一つも .txt がなくても
wgrepはこけません。すなわち、ファイル検索の起点にさえ対象のファイルが
ありさえすれば、以下のディレクトリにはファイルがない階層が挟まって
いても問題ない、というのがとしき的な表現です。
#いいじゃねぇか、そんなこまけぇこと
11701/11538 CRG00666 文太 Re^5: wgrep -u について
( 0) 24/11/24 12:39 11700:としきさんへのコメント
としきさん
>#いいじゃねぇか、そんなこまけぇこと
でもないですよ。
いつの日にか、この「wgrep -u について」のやり取りをグレップで
発見し、おお、先人の方、としきさん、感謝、m(__)m となるかもしれない。
>ファイル検索の起点にさえ対象のファイルがありさえすれば、
なるほど。試さないけど、途中に空が挟まっていてもいいんだ。
違いは大きいと思います。
が、wgrep -u を使うことは、しばらくないと思うので、
僕にとっては、いいじゃん、なんだけど。
m(__)m
いい天気ですねぇ。気分が完全に天気に左右されるお年頃になってます。
11702/11538 CXB00940 としき Re^7: ren grep fgrep
( 0) 24/11/24 17:23 11687:としきさんへのコメント コメント数:1
参照先:http://toshiki.la.coocan.jp/
> > C:\TC のディレクトリ
> > 1989/05/11 02:01 7,029 GREP.COM
>
> うぉ、これも懐かしいですね。TurboC 2.01だ。
> 実家に行けば、今でも残っているかも。
珍しくフットワーク軽く、実家に行ってきました。タッチアンドゴー。
結果。
実家にあったのはTurboC 2.00。
1988/12/20 02:00 8,263 GREP.COM
こんなものあったんだ。たぶん、使った事はない。
11703/11538 CXB00940 としき Re^5: wgrep -u について
( 0) 24/11/24 17:33 11695:文太さんへのコメント
参照先:http://toshiki.la.coocan.jp/
> うちは当番制なので、今年は奥様がやってきました。
一人暮らしだと、そういうわけには行きません。
ただ、同一市内の実家は母と弟が暮らしていて、母が体調不良だから当然弟がやる
かと思ったら誰も出て行かなかったとのこと。いささかあきれる。
> >私がよくやるのは、*.txt なんてファイル指定なんですが、
> abc??.txt という指定では、いつもできてるのに、今日は「*.txt」で
> エラーが出るぞ、という経験があれば、論理的に考えますね。さすが。
私の解釈の問題というか誤解しているのかもしれません。
私の経験では、別のディレクトリだと abc??.txt という指定でも *.txt でも行ける
のに、特定のディレクトリでは同じ指定なのにうまく行かない、なにが違う、という
ところが出発点。そして、あ、このディレクトリはファイル豊富なのに拡張子が txt
のファイルは一つもない、という気付きから数回の実験をおこなって、というような
感じですね。だからこの辺、論理的には考えますが、少なくとも1回は実験を行って、
自分の考えを確かめないと。
何せ、一番信用できないのが自分の考えというやつですから。
11704/11538 BQO00549 konno Re^2: wgrep -u について
( 0) 24/11/24 18:00 11686:としきさんへのコメント
> > wgrep.doc を読んで、なんでできない? に答えを求めました。
> > 考察の結果です。「再帰」ではないです。
> > 一層下だけ、という意味みたいです。wgrep.docからは、そうは読めないと
wgrep は再帰検索に失敗することが有るので、この説明に納得しかけましたが
> それはおかしい。
> 私、PC-98の時代から、該当ディレクトリ下部一括検索をする時はいつもwgrepを
> 使っていました。そして、30年余りの経験で、検索漏れに気がついたことは
> 一度もない。
> そして今、WinXPをひっぱりだしてきてVTDOS122でwgrepを使ってみました。
> 結果、少なくとも3階層くらい下までは引っ張ってきてくれています。
そ、そうなんですか。
> > C:\>wgrep -u "愛愛愛" C:\tk\vzLOG\dc\*.* ;dcフォルダの下の01フォルダに
> > ファイルが読めません ---> C:\TK\VZLOG\DC\*.* ;ヒットすべきファイルがある
>
> うん、実は気がついていない人が多いのですが、こうなる可能性があるパターンと
> いうのがありまして。
> dcフォルダの下の01フォルダにヒットすべきファイルが仮にあったとしても、
> dcフォルダそのものにファイルが1つもない場合、このメッセージが表示されるの
> ですよ。
> その場合、dcフォルダにダミーファイルを1つ作ってやれば、うまくヒットします。
> ファイル名は何でもよろし。dummy.xlsでも何でもOK。
今まで wgrepの再帰検索は不安定だなぁと思っていたのですが、そういうことでしたか。
大変有益な情報をありがとうございます。
11705/11538 BQO00549 konno Re^2: konnoさん、掲示板?
( 0) 24/11/24 18:44 11699:としきさんへのコメント コメント数:1
#11692
> c:\>dir /s c:\*.exe c:\*.com | find /i "grep" | sort /+36
> 994/10/06 00:00 50,672 DGREP.EXE
この多段パイプ技も目を引きましたが
> 994/10/06 は
> 1994/10/06 ですよね。
> この掲示板の「あれ」なのでしょうか >konnoさん
この意味がわかりませんでした。
#11699
> あれ、というか「癖」っぽいですね。うん、「ヤマイダレ」のついている漢字だ。
> mode=msgviewのときだけ発病する感じ。
> allreadとかnewsortの時はきちんと欠落なく表示してくれているから。
> そして、行頭が半角「1」は欠落するけど半角「2」なら大丈夫、というのも不思議。
> どうすればこうなるんだろう。
やっとわかりました。
mode=msgviewのときだけ表示が変なのですね。
うちだけなのかな。
確認してみます。
# ヤマイダレハシナナキャナオラナイ富士の山異誰?
11706/11538 CRG00666 文太 grep.com from TC 1.5 and 2.01
( 0) 24/11/24 21:58 11702:としきさんへのコメント コメント数:1
僕はこんなのを見つけました。
C:\TC\TC15>dir grep.com
1988/01/25 01:05 5,930 GREP.COM
C:\TC\TC15>grep
Turbo GREP Version 1.0 Copyright (c) 1987 Borland International
Syntax is: GREP [-rlcnvidzw] searchstring file[s]
GREP ? for help
C:\TC\TC15>grep ?
Turbo GREP Version 1.0 Copyright (c) 1987 Borland International
Syntax is: GREP [-rlcnvidzw] searchstring file[s]
Options are one or more option characters preceeded by "-", and optionally
followed by "+" (turn option on), or "-" (turn it off). The default is "+".
-r* Regular expression search -l File names only
-c match Count only -n Line numbers
-v Non-matching lines only -i Ignore case
-d Search subdirectories -z Verbose
-w Write default options
(Options flagged with a "*" are on by default)
A regular expression is one or more occurrences of: One or more characters
optionally enclosed in quotes. The following symbols are treated specially:
^ start of line $ end of line
. any character \ quote next character
a* match zero or more a's
a+ match one or more a's
[aeiou0-9] match a, e, i, o, u, and 0 thru 9
[^aeiou0-9] match anything but a, e, i, o, u, and 0 thru 9
C:\TC\TC201>dir grep.com
1989/05/11 11:01 7,029 GREP.COM
C:\TC\TC201>grep
Turbo GREP Version 1.2 Copyright (c) 1987, 1988 Borland International
Syntax: GREP [-rlcnvidzuwo] searchstring file[s]
GREP ? for help
C:\TC\TC201>grep ?
Turbo GREP Version 1.2 Copyright (c) 1987, 1988 Borland International
Syntax: GREP [-rlcnvidzuwo] searchstring file[s]
Options are one or more option characters preceeded by "-", and optionally
followed by "+" (turn option on), or "-" (turn it off). The default is "+".
-r+ Regular expression search -l- File names only
-c- match Count only -n- Line numbers
-v- Non-matching lines only -i- Ignore case
-d- Search subdirectories -z- Verbose
-u- Update default options -w- Word search
-o- UNIX output format Default set: [0-9A-Z_]
A regular expression is one or more occurrences of: One or more characters
optionally enclosed in quotes. The following symbols are treated specially:
^ start of line $ end of line
. any character \ quote next character
* match zero or more + match one or more
[aeiou0-9] match a, e, i, o, u, and 0 thru 9
[^aeiou0-9] match anything but a, e, i, o, u, and 0 thru 9
上は一部フィクションを含みます。C:\TC なんてディレクトリ、この遊びっけ
なしのマシンに存在するわけがありません。遊びマシンは、1年以内くらいに
作ります。
これら grep.com は、もちろん使ったこと、ありません。使う予定もありません。
日本語対応ない grep が、日本語環境でどう振る舞うか、とか調べる気はありません。
konnoさん、TurboC 2.01
1989/05/11 02:01 7,029 GREP.COM --- 一緒、タイムスタンプ異
としきさん、TurboC 2.00
1988/12/20 02:00 8,263 GREP.COM
文太、TurboC 1.5
1988/01/25 01:05 5,930 GREP.COM
文太、TurboC 2.01
1989/05/11 11:01 7,029 GREP.COM --- 一緒、タイムスタンプ異
追記:Turbo grep には、ver. 1.0 から、「ディレクトリ再帰」がある!
-d Search subdirectories
11707/11538 CRG00666 文太 GNU grep 2.5.4 (English)
( 0) 24/11/24 22:51 11685:konnoさんへのコメント コメント数:1
英語環境だけで使う(僕にはある)、というのなら、使えるのかもしれない。
たぶん、一般にはお勧めできないのだろうと想像して、どこでどうこれを入手
したかは書きません。
C:\PROGRA~2\GNUWIN32\BIN>grep --version
GNU grep 2.5.4
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
C:\PROGRA~2\GNUWIN32\BIN>grep
使用法: C:\PROGRA~2\GNUWIN32\BIN\GREP.EXE [オプション]‥‥ 文字列パターン [ファイル]‥‥
詳しくは`C:\PROGRA~2\GNUWIN32\BIN\GREP.EXE --help'を実行してください。
C:\PROGRA~2\GNUWIN32\BIN>type t.txt
表十
C:\PROGRA~2\GNUWIN32\BIN>grep "表" t.txt
C:\PROGRA~2\GNUWIN32\BIN\GREP.EXE: Trailing backslash
11708/11538 CRG00666 文太 32bit Grep (Japanese)
( 0) 24/11/25 00:04 11707:文太さんへのコメント コメント数:3
32ビットの日本語対応グレップ、だと思う。awk-like な拡張正規表現が
使える模様。
www.vector.co.jp/soft/winnt/util/se365621.html
Win11で、動くことだけ確認しました。もともとgrep.exeというファイル名
だったのですが、これではちょっと使いづらいので、作者の名前から、
popogrep.exeとリネームしました。
あまり使う予定はないものですから。
C:\WK\POPOGREP>popogrep
Parameter error
Usage :
grep [option] string file
[option]
-i : 比較中に大文字と小文字を区別しない
-c : パターンを含む行の数だけを表示する
-n : 各行の先頭に、ファイルにおけるその行の行番号を出力しない
-v : パターンを含む行を除いたすべての行を出力する
-p : 結果出力時にファイルのパスを表示しない
-f : 結果出力時にファイルのパスをフルパス表示する(デフォルトは相対パス表示)
-r : サブディレクトリも再起的に検索する 【あるじゃん!】
string : Grep対象文字列
正規表現可
ex)
grep .+[abc]+ file
file : ファイル名
ワイルドカード可
ex)
grep abc *.txt
C:\WK\POPOGREP>type t.txt
表
十
愛
C:\WK\POPOGREP>popogrep "表" t.txt
popogrep.txt(17): と入力するとテキストファイルから"ABCDEFG"を含む行を全て抽出して画面に表示
popogrep.txt(26): 2.正規表現を使用することもできます。
popogrep.txt(32): 正規表現については、別途参考書等を参照してください。
popogrep.txt(39): -c : パターンを含む行の数だけを表示する
popogrep.txt(42): -p : 結果出力時にファイルのパスを表示しない
popogrep.txt(43): -f : 結果出力時にファイルのパスをフルパス表示する(デフォルトは相対パス表示)
popogrep.txt(76): 起動時に何らかのエラーが表示される場合には、
t.txt(1): 表十
C:\WK\POPOGREP>popogrep 表 t.txt
popogrep.txt(17): と入力するとテキストファイルから"ABCDEFG"を含む行を全て抽出して画面に表示
popogrep.txt(26): 2.正規表現を使用することもできます。
popogrep.txt(32): 正規表現については、別途参考書等を参照してください。
popogrep.txt(39): -c : パターンを含む行の数だけを表示する
popogrep.txt(42): -p : 結果出力時にファイルのパスを表示しない
popogrep.txt(43): -f : 結果出力時にファイルのパスをフルパス表示する(デフォルトは相対パス表示)
popogrep.txt(76): 起動時に何らかのエラーが表示される場合には、
t.txt(1): 表十
C:\WK\POPOGREP>popogrep 愛 t.txt
t.txt(3): 愛
ま、バグってはいます。
たぶん、
C:\WK\POPOGREP>popogrep 表 t.txt
が
C:\WK\POPOGREP>popogrep 表 *.*
か
C:\WK\POPOGREP>popogrep 表 *.txt
と解釈されているのでしょう。
もちろん、かなり意地悪なテストです。こんな結果になるとは思わなかった
のだけど。
11709/11538 CXB00940 としき Re: grep.com from TC 1.5 and 2.01
( 0) 24/11/25 00:27 11706:文太さんへのコメント
参照先:http://toshiki.la.coocan.jp/
> konnoさん、TurboC 2.01
> 1989/05/11 02:01 7,029 GREP.COM --- 一緒、タイムスタンプ異
> 文太、TurboC 2.01
> 1989/05/11 11:01 7,029 GREP.COM --- 一緒、タイムスタンプ異
かっきり9時間ですからねぇ。
どこかでタイムスタンプを狂わせる圧縮/解凍ツールを使った可能性が高そうな
結果ですね。
11710/11538 CXB00940 としき Re^3: konnoさん、掲示板?
( 0) 24/11/25 00:34 11705:konnoさんへのコメント コメント数:1
参照先:http://toshiki.la.coocan.jp/
> mode=msgviewのときだけ表示が変なのですね。
行頭の半角「1」が欠落する、というのはmode=msgviewのときだけですね。
ただ、今、いろいろと見て回っていたら、konnoさん、ちょうど手を入れている最中
なのかな。mode=allreadのツリー表示が微妙に崩れているところがある。
なんかまた、デグレが発生したかな。
11711/11538 CRG00666 文太 findstr.exe (32bit Win Grep)
( 0) 24/11/25 13:17 11708:文太さんへのコメント コメント数:1
これでいいでしょう! >findstr /? とすれば出るので、以下は
抜粋です。
C:\WINDOWS\SYSTEM32>dir findstr.exe
C:\WINDOWS\SYSTEM32 のディレクトリ
2010/11/20 21:17 62,976 findstr.exe
C:\>findstr /?
ファイルから文字列を検索します。
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
[/F:ファイル] [/C:文字列] [/G:ファイル] [/D:ディレクトリ一覧]
[/A:色属性] [/OFF[LINE]] 文字列 [[ドライブ:][パス]ファイル名[ ...]]
/L 検索文字列をリテラルとして使用します。
/R 検索文字列を正規表現として使用します。
/S 現在のディレクトリとすべてのサブディレクトリから一致する
ファイルを検索します。
/F:ファイル 指定したファイルからファイル一覧を読み取ります (/ を指定する
とコンソール)。
/G:ファイル 指定されたファイルから検索文字列を取得します (/ を指定する
とコンソール)。
正規表現クイック リファレンス:
. ワイルドカード: 任意の文字
* 繰り返し: ゼロ個以上の直前の文字またはクラス
^ 行位置: 行頭
$ 行位置: 行末
[class] 文字クラス: セットの任意の 1 文字
[^class] 逆クラス: セット以外の任意の 1 文字
[x-y] 範囲: 指定した範囲の任意の文字
\x エスケープ: メタ文字 x のリテラル使用
\<xyz 単語位置: 単語の先頭
xyz\> 単語位置: 単語の終わり
sample:
C:\WINDOWS\SYSTEM32>findstr 表 t.txt
表
(十分日本語に対応していないのかもしれない)
C:\WINDOWS\SYSTEM32>findstr /R ".." t.txt
表
表表
十十十
愛
愛
「表」も「愛」も2文字と認識されているみたい。
「*」がうまく機能しなかったのも、このせいだ、きっと。
とても使い勝手が悪そうだ、とは言えるでしょう。
結論:これでよくは、ない。
11712/11538 BQO00549 konno Re^4: konnoさん、掲示板?
( 0) 24/11/25 15:30 11710:としきさんへのコメント コメント数:1
> > mode=msgviewのときだけ表示が変なのですね。
> 行頭の半角「1」が欠落する、というのはmode=msgviewのときだけですね。
ソースを確認したら、変な部分を見つけました。
$v_msg =~ s/<br>1/\n/g;
これは、
<br> を \n に変換するところだと思いますが、1 が余計に入っている?
$v_msg =~ s/<br>/\n/g;
1を削除したら正常になりました。これか!
多分ソースを弄っている時にうっかり1を押してしまったのでしょう。
うちのノートPCはテンキー付きなので指が触れやすいのです。
うっかりミスを発見してくれてありがとうございます。
てか、そもそもここでこの変換は必要なのだろうか? <br>を表示させるためかな?
> ただ、今、いろいろと見て回っていたら、konnoさん、ちょうど手を入れている最中
> なのかな。mode=allreadのツリー表示が微妙に崩れているところがある。
> なんかまた、デグレが発生したかな。
げげ、結構崩れていますね。でもツリールーチンは最近弄った記憶が無いのですが。
ルーチンとしてバグが残っているとは思ってましたが、ここまで酷くはなかったような。
見てみます。
追記
¥n は改行になってるし、<br>は表示してないじゃん!
また見直さなくては。(;_;)
11713/11538 CRG00666 文太 popogrep & findstr @ CMD窓
( 0) 24/11/25 18:42 11711:文太さんへのコメント
>type test.txt
表
十
愛
>popogrep "." test.txt
test.txt(1): 表
test.txt(2): 十
test.txt(3): 愛
>popogrep ".." test.txt
(zero)
popogrepは、VTDOS環境ではまともに動きませんが、cmd窓なら
動くようです。(テストは上だけ)
c:\wk>findstr -R "." test.txt
表
十
愛
c:\wk>findstr -R ".." test.txt
表
十
愛
c:\wk>findstr -R "..." test.txt
(zero)
やはり、findstr.exeは、日本語対応ができていません。
少なくとも正規表現の「.」(任意の1字)は、ダメです。
(日本語対応はまったくダメ、という部分、本当なのか、ちょっと
自信がないけど。cmd窓の日本語化とかあるんですかね? しかし、
その日本語はUTF-8とかじゃないのかな、、、。SJISはどうなる?
などなど)
この辺で打ち止めです。やはり、僕は16ビット、SJISな環境に
とどまりたいと思いました。
こんなに苦労することになるとは、夢にも思ってなかった。
11714/11538 CRG00666 文太 Re: 32bit Grep (Japanese)
( 0) 24/11/25 20:15 11708:文太さんへのコメント
popogrepについて(勝手に名前を変えてすいません)です。
「作者名:popo.neco」という方の作品でした。grep.exeがオリジナルの
名前。
●動作環境 IBM PC/AT互換機 Windows 2000/XP 以降 となっています。
>ま、バグってはいます。
>たぶん、
これは、プログラムの側に責任があるというより、VTDOS環境との
相性だと思われます。僕はこりてしまったので、32bit grepからは
撤退しますが、こういう環境(DOSエミュ全般?)との【相性】という
のは、きっとあるのでしょう。
rcp32.exeが当初から動いて、よかったですね。
VTDOSその他のDOSエミュレータで、16ビット・アプリが無事に
動き続けることを祈ってます。僕は、Vzというか、趣味の情報管理
としてのPCという意味では、XP以前まで後退します。
いやぁ、壁は厚かった。wild + izgrep が VTDOS @ Win11 で
動かなかったときは、「や、やばいぞ」と強く思いました。
大昔ほど真剣には、暗い気持ちにならなかったのですが。この方面では
もうあまり前を見なくてよい、と思っているので。
11715/11538 BQO00549 konno Turbo GREP 5.6
( 0) 24/11/27 22:01 11708:文太さんへのコメント コメント数:1
まとレスです。
#11706
> 文太、TurboC 1.5
> 1988/01/25 01:05 5,930 GREP.COM
文太さんもとしきさん以上の収集家なんですね。(^^;
> 追記:Turbo grep には、ver. 1.0 から、「ディレクトリ再帰」がある!
> -d Search subdirectories
これを見て Turbo grep 1.2 を試してみました。
FGAL\ のフォルダから再帰検索すると 非常に時間が掛かります。
VTDOSで各種 grep の再帰検索時間を測ってみました。いずれもキャッシュが効いた状態
GREP -Hnir "YAgrep.exe" *.* 13秒 GNU grep 2.5.4 32ビット
BGrep -dnio "YAgrep.exe" *.* 17秒 Turbo grep 5.6 32ビット
TGrep -dnio "YAGREP.exe" *.* 29秒 Turbo grep 1.2 16ビット
YGrep -Srti "YAgrep.exe" *.* 1:07秒 16ビット
WGrep ハングアップでDOS窓消滅 DOSVAXJ3も同じ
こうして見ると Turbo grep 1.2 は16ビットなのに速いですね。
次に "表十愛" のテストをしてみました。
#11708
> C:\WK\POPOGREP>type t.txt
> 表
> 十
> 愛
このナイスなテストテキストで文太さんと同じようなテストをしたら
grep 2.5.4 は駄目でした。愛はOKだけどそれ以外はNG。1行に漢字1文字だけだとNG? 惜しい
Turbo grep 1.2 は駄目でした。漢字2バイトを認識してないようです。残念。
Turbo grep 5.6 は全部OKみたいです。これは使えるかも。
これは BCC (Borland C++ Compiler) だったかな、にありました。
区別のためにリネームしています。
>bgrep ?
Turbo GREP 5.6 Copyright (c) 1992-2010 Embarcadero Technologies, Inc.
Syntax: GREP [-rlcnvidzewoqhu] searchstring file[s] or @filelist
Options are one or more option characters preceded by "-", and optionally
followed by "+" (turn option on), or "-" (turn it off). The default is "+".
-r+ Regular expression search -l- File names only
-c- match Count only -n- Line numbers
-v- Non-matching lines only -i- Ignore case
-d- Search subdirectories -z- Verbose
-e Next argument is searchstring -w- Word search
-o- UNIX output format Default set: [0-9A-Z_]
-q- Quiet: supress normal output
-h- Supress display of filename
-u xxx Create a copy of grep named 'xxx' with current options set as default
A regular expression is one or more occurrences of: One or more characters
optionally enclosed in quotes. The following symbols are treated specially:
^ start of line $ end of line
. any character \ quote next character
* match zero or more + match one or more
[aeiou0-9] match a, e, i, o, u, and 0 thru 9 ;
[^aeiou0-9] match anything but a, e, i, o, u, and 0 thru 9
もしかすると正規表現が簡易版かもしれませんが私の用途では充分です。
11716/11538 CRG00666 文太 Grep.exe 5.5 (Borland)
( 0) 24/11/28 11:43 11715:konnoさんへのコメント コメント数:1
微妙に ver が違いますが、きっと同じじゃないかな?
結論からいうと、十分にすごい。でも抜けもある。とりわけ¥がらみの「表」とか。
比較対象は、16bit ygrep.exe。こっちが正解。
C:\WK>grep
Turbo GREP 5.5 Copyright (c) 1992, 2000 Inprise Corporation
Syntax: GREP [-rlcnvidzuwo] searchstring file[s] or @filelist
GREP ? for help
C:\WK>type 1.txt
愛
表
表表
あいうえお
C:\WK>grep "表+" 1.txt
File 1.txt:
表
表表
C:\WK>ygrep "表+" 1.txt
1.txt 2:表
1.txt 3:表表
C:\WK>grep "[亜-腕弌-龠]" 1.txt ; NG
File 1.txt:
愛
C:\WK>ygrep "[亜-腕弌-龠]" 1.txt
1.txt 1:愛
1.txt 2:表
1.txt 3:表表
C:\WK>grep "[ぁ-ん]" 1.txt
File 1.txt:
あいうえお
C:\WK>ygrep "[ぁ-ん]" 1.txt
1.txt 2:あいうえお
C:\WK>grep "[ぁ-ん][ぁ-ん]*" 1.txt
File 1.txt:
あいうえお
C:\WK>ygrep "[ぁ-ん][ぁ-ん]*" 1.txt
1.txt 4:あいうえお
C:\WK>grep "....." 1.txt
File 1.txt:
あいうえお
C:\WK>grep ".........." 1.txt
C:\WK>ygrep "....." 1.txt
1.txt 4:あいうえお
C:\WK>ygrep ".........." 1.txt
ygrep.cfg が普段のまま、なのは手抜きです。
これだけじゃないかもしれないけど。
https://ja.wikipedia.org/wiki/Shift_JIS
「2バイト目が5C等になりうることによる問題」
ソ、表、噂、欺、十、貼、構、暴、兎、予、申 など。
追記:VTDOS環境も同じだろうと思うけど(じゃないと変)、日本語版 windows の
CMD窓の文字コードは、いまでも SJIS がデフォなのだそうです。UTF-8に変更
することも可能なようですが。
11717/11538 BQO00549 konno Re: Grep.exe 5.5 (Borland)
( 0) 24/11/29 21:05 11716:文太さんへのコメント コメント数:1
> 微妙に ver が違いますが、きっと同じじゃないかな?
> 結論からいうと、十分にすごい。でも抜けもある。とりわけ¥がらみの「表」とか。
> 比較対象は、16bit ygrep.exe。こっちが正解。
> Turbo GREP 5.5 Copyright (c) 1992, 2000 Inprise Corporation
おお、一つ前のバージョンがあったのですね。でも抜けがあったとは残念。
> C:\WK>grep "[亜-腕弌-龠]" 1.txt ; NG
> File 1.txt:
> 愛
うーむ、通常検索はOKで、正規表現が「表」に対応してないような感じですね。
0.1の違いに一縷の望みを託して試してみました。
が、予想通り、NGでした。(>_<)
> https://ja.wikipedia.org/wiki/Shift_JIS
> 「2バイト目が5C等になりうることによる問題」
> ソ、表、噂、欺、十、貼、構、暴、兎、予、申 など。
これらの漢字が無ければ正規表現でも大丈夫なのかな、参考にします。
> 追記:VTDOS環境も同じだろうと思うけど(じゃないと変)、日本語版 windows の
> CMD窓の文字コードは、いまでも SJIS がデフォなのだそうです。UTF-8に変更
> することも可能なようですが。
そうなんですか、でも今の調子だといつ SJISが切り捨てられてもおかしくないですね。
SJISテキストの膨大な過去資産があるから、実際にはおいそれと変えられないのかも。
11718/11538 CRG00666 文太 Re^2: Grep.exe 5.5 (Borland)
( 0) 24/11/29 23:23 11717:konnoさんへのコメント
konnoさん
>が、予想通り、NGでした。(>_<)
でしょうね。でも、Borlandは、どうやって2バイト文字だと判定
してるのでしょう? 「....」とか。
すげえな、と思いました。GNU の日本語対応なしより Borland でしょう。
2バイト文化圏(中国と韓国と日本?)を意識していたのか?
>> ソ、表、噂、欺、十、貼、構、暴、兎、予、申 など。
>これらの漢字が無ければ正規表現でも大丈夫なのかな、参考にします。
なんじゃないでしょうか。だから、「Yagrep.exe」(検索文字列)
なんてのは、前後でよほど運が悪くなければ、ちゃんとヒットするん
じゃないかなぁ???
僕のテストは何となく思いついた程度をやったので、網羅的とは
とうてい言えませんが。安全にたおせば、やはり、信頼のおける、16ビットの
ygrep, cgrep, izgrep あたりじゃないのかな。あるいは、マルチバイト対応の
16ビットのGNUもの。
スピードはがまん。
ygear.def by とらじ、を使ってみてください。すごいですよ。
コマンドラインを一部再現してるので、とっつきにくいけど。でも、メニュー
があるから、使い込むほどベンリ! 最近は使ってないけど。
あと、正規表現、使うと便利ですよ。せっかく grep なんだし。
egrep。だいたい vwx と同じ拡張正規表現です。こっちのほうが、
大方、便利です。「ああ*」=「あ+」ですから。「あ」の1回以上の繰り返し。
>> CMD窓の文字コードは、いまでも SJIS がデフォなのだそうです。
>そうなんですか、でも今の調子だといつ SJISが切り捨てられてもおかしくないですね。
>SJISテキストの膨大な過去資産があるから、実際にはおいそれと変えられないのかも。
どうなんでしょうね? shadowさんのアドバイスにしたがって、「レガシーコンソール」
を Win11 に入れたら、おお、変な文字化けがなくなった、と喜びました。
が、「レガシーコンソール」もオプション扱いに格下げになっているようで、うう、
どうなんだろう、という感じはしてます。
すいません、VTDOS で、手一杯なもので。DOS, WinME, WinXP あたりの調教が
まだまだ先みたいで。チェーンソーと格闘しています(謎)。ついに、2サイクル・
ガソリンエンジンのチェーンソーを使ってしまった。すごく疲れました。
下手をすれば、指も腕も飛んでいく、恐怖。でもすごいパワー。さすが化石燃料。
11719/11719 BQO00549 konno c.mos氏が Vzのソースを公開
( 0) 24/12/07 17:25
11720/11720 BQO00549 konno NT系DOS 5.0の真のバージョンは5.50
( 0) 24/12/07 17:27
Xの savaさん(LP-Project の Lukewarm氏)の記事で知りました。
> x86版NT系WindowsのNTVDM(DOS 5.0相当だがfunc 3306hの「真のバージョン」では5.50を返す。このことにより判別可能なのは逆に有情か…?)
そうだったんだ! 以前 NT系DOSのVerが 5.5 と表示され、?? と思ったことがありました。
> #7208: Re: commannd.com窓 投稿者:konno 2016/02/21(日)
> Meu.com ver.1.20 1991-94 (c) By SEIN
> MSDOS version = 5.50 / revision = 0 / exist in HMA
> う、commannd.com窓のDOSverは、5.50 ??
この時ははて? と思っただけですが
MEU は func 3306hを使って「真のバージョン」を返していたんですね。
ブラウンさんのリストを翻訳すると
DOS 5+ - 真のバージョン番号を取得
AX = 3306h
Return:
BL = major version
BH = minor version
DL = revision (bits 2-0, all others 0)
DH = version flags
bit 3:
DOS is in ROM
bit 4:
DOS is in HMA.
AL = FFh if true DOS version < 5.0
筆記:この関数は、AH=30h とは異なり、常に真のバージョン番号を返します。 その戻り値は SETVER で変更できます。
このようになっています。
掲示板検索したら、文太さんが過去に言及していました。
> #10540: get true ver (ax=$3306) 投稿者:文太 2023/01/29(日)
この記事で確認用のマクロも貼り付けていました。
-----------------------------------------------------------
=== Macrotmp by B ===; always returns "true" dos version
* M
50 ^^ "Macrotmp"
ax=$3306, &i($21) ;vtdos returns 6.20 here
&m("MS-DOS v%d.%d",bx&$FF,bx>>8&$FF) ;vtdos returns the ver of
; ax=$3000, &i($21) ;command.com used again.
; &m("MS-DOS v%d.%d",ax&$FF,ax>>8&$FF) ;So made, it seems.
*
-----------------------------------------------------------
でもこれは別の目的でたまたまだったようで、私は全然気が付きませんでした。(^^;
11721/11306 CXB00940 としき Re: 「新着情報 携帯版」と掲示板の連携
( 0) 24/12/07 18:02 11306:konnoさんへのコメント コメント数:1
参照先:http://toshiki.la.coocan.jp/
どこにつけようか迷ったのですが、とりあえずこちらにつけさせていただきます。
現在、また何かいろいろといじっている最中とお見受けしました。
それとも、単にバグっているだけかな。
実は私もちょっといじっていることがありまして。
なので、数十分に1回、こちらの新着情報をリロードしていたりするもので気がつき
ました。
完成したら、またご紹介ください。
11722/11306 BQO00549 konno Re^2: 「新着情報 携帯版」と掲示板の連携
( 0) 24/12/07 22:36 11721:としきさんへのコメント コメント数:1
> 現在、また何かいろいろといじっている最中とお見受けしました。
> それとも、単にバグっているだけかな。
すみません。単なるバグです。m(__)m
といってもその前後に大ポカをやらかして生ログを別の物で上書きしたり。(>_<)
弄っているのは確かですが、表示の不具合は過去記事タイトルを引用すると出るのです。
いい不具合回避法が思いつかないの。(;_;)
> 実は私もちょっといじっていることがありまして。
おお、完成したらぜひご紹介ください。
11723/11306 CXB00940 としき Re^3: 「新着情報 携帯版」と掲示板の連携
( 0) 24/12/08 01:31 11722:konnoさんへのコメント コメント数:1
参照先:http://toshiki.la.coocan.jp/
> > 実は私もちょっといじっていることがありまして。
> おお、完成したらぜひご紹介ください。
ほい。
何をいじっているかというと、RSSのアップロードの関係。
#8026で書きましたが、現在、ニフティから直接は読めない板塀のRSSを1日2回、
自前でニフティにアップロードしていました。これは定期的な動きなので、なにも
変化がなくても自動でアップロードしていました。
これを、1時間に1回チェックするようにして、そのかわり変化があったときだけ
アップロードするように書き換えている最中。
いろいろミスもあったけど、とりあえず動き出しました。現在、安定監視中。
明日か明後日には安定監視を終了して、特に問題がなければそのまま常用に移行する
予定。ただし、これの紹介はいつできるやら。それより前に、ベクターからの引越し
を行う必要があるので。
と、こういうことをやっていたので、新着情報にもアクセスしていたわけです。
そして、17時半前ぐらいだったかな。タイミング的には#11719が書き込まれる前か
後かぐらい。新着情報にアクセスしてみたところが、konnoさんのサイトのところが
丸々すっぽりと非表示。テーブル部分だけが非表示なら、またバグだな、とピンと
来るところですが、今回はその上の、トップページやブログへのリンクを表示して
いる行の部分も表示されていないように見えて。これはkonnoさん、自分のところの
表示をやめたのかな、なんて思ってしまったわけです。念のため、CGIの出力した
ページのソースも確認したのですが、やっぱり表示されていないような感じ。
ただ、この辺の確認、板塀サーバとして使っているWinXPマシンの、それもIEから
行っているのですね。こんなものを使うのは、何年ぶりだろう。なので、確認ミス
とかあったかもしれない。
とはいえ、こんな感じだったものですから、運悪くちょうど何かいじっている最中
だったかな、と思った次第。
ですが、それからほんの少しあと、#11720が書き込まれた後に新着情報をみたら、
今度はとりあえず表示はされていて、ただしテーブルが崩れている状況。
なので、これはやっぱりバグだったのかなぁ、なんて思いなおしてみたりして。
というような状況でした。
11724/11306 BQO00549 konno Re^4: 「新着情報 携帯版」と掲示板の連携
( 0) 24/12/08 18:19 11723:としきさんへのコメント コメント数:1
> 何をいじっているかというと、RSSのアップロードの関係。
> これを、1時間に1回チェックするようにして、そのかわり変化があったときだけ
> アップロードするように書き換えている最中。
おお、板塀の更新が速くなるわけですね。期待してしまいます。
さっき更新情報がおかしいいように見えたのはテスト中だったのかな。(^^;;
> そして、17時半前ぐらいだったかな。タイミング的には#11719が書き込まれる前か
> 後かぐらい。新着情報にアクセスしてみたところが、konnoさんのサイトのところが
> 丸々すっぽりと非表示。
げげ、丸ごと消えていましたか、wforum.cgiのエラーだったんですが。操作ミスで。
最近車で踏み間違いも経験したりして、色々脳がヤバくなってきてるかも。(;_;)
11725/11306 CXB00940 としき Re^5: 「新着情報 携帯版」と掲示板の連携
( 0) 24/12/08 23:57 11724:konnoさんへのコメント コメント数:1
参照先:http://toshiki.la.coocan.jp/
> さっき更新情報がおかしいいように見えたのはテスト中だったのかな。(^^;;
そのとおりです。
#11723では安定監視中なんて書いたけど、実際にはまだバグバグで。
8日正午過ぎの段階で、1時間毎のチェックまではできていたけど、チェックの結果
にかかわらず再アップロードしてしまっていたことが判明。
そこは修正したけど、別のところがどうも不安定であることが、夕方になって判明。
結局はテキスト処理なんでパイプをかませているのですが、なんかパイプの後ろ側を
処理してくれていないことが時々あるみたい。なんでや。パイプの前後の実行速度の
差かなぁ。
結局、テンポラリファイルを1つかませることにして、現在様子見。
すなわち安定監視中。
> げげ、丸ごと消えていましたか、wforum.cgiのエラーだったんですが。操作ミスで。
これ、#11723にも書きましたが、私のチェックが甘い可能性あり。
つまり、丸ごと消えたような気がしただけ、かもしれない、ということ。
差し支えなければ、どんなコードを使っているのか、貼り付けていただけませんか?
11726/11306 BQO00549 konno Re^6: 「新着情報 携帯版」と掲示板の連携
( 0) 24/12/09 22:38 11725:としきさんへのコメント コメント数:1
> 結局はテキスト処理なんでパイプをかませているのですが、なんかパイプの後ろ側を
> 処理してくれていないことが時々あるみたい。なんでや。
関係あるかはわかりませんが、更新情報がおかしいというのは、うちの掲示板のタイトルが
板塀の所に表示されていたのです。ビックリして見に行ったら全然違うタイトルだったし。
更新情報の潜在バグかもしれません。
> > げげ、丸ごと消えていましたか、wforum.cgiのエラーだったんですが。操作ミスで。
> 差し支えなければ、どんなコードを使っているのか、貼り付けていただけませんか?
いや、コード弄りではなく、誤操作でNGデータに入れ替えてしまったんですよ。
それも2回も。(;_;)
11727/11306 CXB00940 としき Re^7: 「新着情報 携帯版」と掲示板の連携
( 0) 24/12/09 23:24 11726:konnoさんへのコメント
参照先:http://toshiki.la.coocan.jp/
> 関係あるかはわかりませんが、更新情報がおかしいというのは、うちの掲示板のタイトルが
> 板塀の所に表示されていたのです。ビックリして見に行ったら全然違うタイトルだったし。
> 更新情報の潜在バグかもしれません。
ごめんなさい、これは私が意図して実験していたときのものを見られていたのでしょう。
何を実験していたかというと、#11722でkonnoさん
> 弄っているのは確かですが、表示の不具合は過去記事タイトルを引用すると出るのです。
と書いていたので、うちのところで過去記事タイトルを使うと表示の不具合が出るかな、と
思って、わざとタイトルだけをkonnoさんのところのものに書き換えてみていたのです。
でも、タイトルだけを書き換えただけでは発症せず。
これは、本文の中で過去記事タイトルを引用したときだけ発症、ということのようですね。
なので
> > 差し支えなければ、どんなコードを使っているのか、貼り付けていただけませんか?
というのは#11722の
> いい不具合回避法が思いつかないの。(;_;)
ここにかかってくるのです。
コードを貼り付けていただければ回避法を議論できるかもしれない、ということです。
11728/11538 CXB00940 としき Re^5: konnoさん、掲示板?
( 0) 24/12/09 23:34 11712:konnoさんへのコメント
参照先:http://toshiki.la.coocan.jp/
> > > mode=msgviewのときだけ表示が変なのですね。
> > 行頭の半角「1」が欠落する、というのはmode=msgviewのときだけですね。
この症状が再発しているようです。ツリーも相変わらず崩れているようだし。
konnoさん、また何か古いコードに差し替えていたりしませんか?
また同じようにテンキーに触ったのでしょうか。
例えば、外付けのキーボードを使う、といった抜本的な解決策を採用されることも
考えるべきかもしれません。
それとも、バージョン管理に失敗して、古いコードをアップしてしまったとか?
そういうことなら、先進のバージョン管理システムを導入しましょう。
最近のハヤリはgitかな。
あ、そういえば。mode=allreadのとき。
表示の最上部に[リストへもどる]というのが2つ表示されています。
もし、それぞれで違うリストを表示させることをたくらんでいるのなら、表記を
それなりに変更していただけるとありがたい。