(11538)
11538:
DOSVAXJ3 (2024/10/11)版
投稿者:
konno
2024/10/11(金) 20:11
コメント数 5
DOSVAXJ3 (2024/10/11)版が公開されました。
内容は
-----------------------------------------------------------
build JP241011 (2024/10/11)
int 2Fh ax=1703h のクリップボードセットで文字列末尾が欠けるのを修正しました。
-----------------------------------------------------------
これで DOSVAXJ3 でもクリップボードが使えるようになりました。
ありがたいです。
ClpPst.def の INT2Fペーストで末尾に ^A が出る場合があったのでこの後修正します。
- No.11538 -
このTreeへ
[リストへもどる]
soft
(11538)
11559:
DOSVAXJ3 Win32プログラム対応テスト版
投稿者:
konno
2024/10/19(土) 17:25
11538 番 konno さんへのコメント
軟式さんに許可をいただいたので、以下にテスト版URLと説明を載せます。
-----------------------------------------------------------
テスト版を作成しました。下記よりダウンロードしてください。
64bit 版実行ファイルのみです。
https://www.nanshiki.co.jp/test/dosboxj_test2.zip
Vz のマクロから CLPPST.EXE を呼び出してコピー・ペーストできる事は
確認しています。
mount したドライブ上でのみ使用可能です。imgmount したドライブ上の
ファイルはWindows からは見えませんので使用できません。
また、mount c c:\ 等として Windows のドライブと DOSVAXJ3 上のドラ
イブ構造が同じとなるようにしてください。
mount c c:\dos 等とすると Windows のコンソールプログラムから参照
するファイルと DOSVAXJ3 から参照するファイルのパスが異なってしまい
期待通りの動作をしなくなりますのでご注意ください。
上記例の場合 Windows の C:\DOS\VZ に Vz 関連が入っているとして
C:\DOS\VZ\CLPPST.TMP .. Windows 上のファイルパス
C:\VZ\CLPPST.TMP .. DOSVAXJ3 上のファイルパス
と異なったパスになってしまいます。
Windows コンソールプログラムに正しいファイルパスを渡せるようであ
れば問題はありません。
またフルパスを指定せずカレントディレクトリのファイル名を渡すのも
問題ありません。例えば DOSVAXJ3 上で C:\VZ に移動し
C:\VZ> CLPPST /R CLPPST.TMP
とした場合は Windows 上の C:\DOS\VZ\CLPPST.TMP を読み込むことがで
きます。
おまけで Windows デスクトッププログラムも DOSVAXJ3 から起動できる
ようにしています。
今回の目的としては clppst.exe 使用だと思いますので問題ないとは思
いますが、コンソールプログラムで文字入力があるものは使用できません
のでご注意ください。固まってしまうので、一定時間出力なしで強制終了
させています。
-----------------------------------------------------------
私は [autoexec] セクションに
mount c c:\
mount d d:\
こうしているので問題ないですが、確認しておいた方がいいですね。
VTDOSやMS-DOS Playerはデフォでドライブ丸ごとマウントしているだろうから同じ土俵に上がった感じですね。
本当にありがとうございました。
- No.11559 -
このTreeへ
コメント元:11538 へ
[リストへもどる]
pre
(11538)
11630:
DOSVAXJ3 (2024/11/06)テスト版
投稿者:
konno
2024/11/07(木) 01:29
11538 番 konno さんへのコメント
軟式さんから DOSVAXJ3 (2024/11/06)テスト版のメールをいただきました。
内容は
-----------------------------------------------------------
> stdout と stderr が分離できていなかったのと、Windows アプリ側から
>カレントディレクトリのファイルを正しく認識できていなかったのを修正
>しています。テスト版は下記からダウンロードできます。
>https://www.nanshiki.co.jp/test/dosboxj_test3.zip
-----------------------------------------------------------
細かい修正があるようです。
CLPPST.EXE もバッチリですし、32ビットのCOPY系も動くようになり、快適です。
正式版がまちどうしいですね。
本当に感謝です。
- No.11630 -
このTreeへ
コメント元:11538 へ
[リストへもどる]
soft
(11538)
11631:
DOSVAXJ3 (2024/11/07)テスト版
投稿者:
konno
2024/11/07(木) 22:11
11538 番 konno さんへのコメント
軟式さんから DOSVAXJ3 (2024/11/07)テスト版のメールをいただきました。
内容は
-----------------------------------------------------------
> さらにいろいろ見直しまして、ドライブのルートを mount しなくても
>大丈夫になりました。テスト版は下記にあります。
>https://www.nanshiki.co.jp/test/dosboxj_test4.zip
> mount c c:\dos 等として、Windows コンソールプログラムに DOSVAXJ3
>上の C ドライブのファイルを指定して渡しても大丈夫です。
> 処理としてはコマンドラインパラメータのパスを書き換えています。
-----------------------------------------------------------
mount e d:\log\fgal\ として、32ビットコピーも問題なく出来ました。
これはいいですね。ますます便利になりました。
作者様に感謝です。
- No.11631 -
このTreeへ
コメント元:11538 へ
[リストへもどる]
soft
(11538)
11645:
DOSVAXJ3 (2024/11/15)テスト版
投稿者:
konno
2024/11/16(土) 00:45
11538 番 konno さんへのコメント コメント数 1
DOSVAXJ3 (2024/11/15)テスト版のメールをいただきました。
内容は
-----------------------------------------------------------
さらに見直しまして、Visual C++ 製のプログラムであれば入力も可能とな
りました。clppst.exe は Delphi 製ですが入力はありませんので問題なく動
作します。
途中で止まってしまうプログラムは Ctrl-C で強制終了できるようになりま
したのでタイムアウトによる終了はなくなりました。
表示がでない Windows コンソールプログラムがありましたら
> set dosvaxj3=noinput
とした後で実行してみてください。
> set dosvaxj3=setenv
で現在設定されている環境変数を Windows コンソールプログラムに渡しま
す。PATH 等は上書きされます。ただし COMSPEC と DOSVAXJ3 は渡しません。
両方設定する場合は set dosvaxj3=noinput,setenv となります。
テスト版は下記にあります。
https://www.nanshiki.co.jp/test/dosboxj_test5.zip
特に問題がなければ来週早々に正式版にする予定です。
-----------------------------------------------------------
ということでテスト版試してみました。
GREPなど入力系のプログラムが動くようになりました。ありがとうございます。
うれしいです。
gawk はリダイレクトでsyntax errorが出ましたが、リダイレクトしなければ動きました。
gawk "BEGIN{print mktime("""2004 09 28 20 57 00""")} >utime
gawk: ^ syntax error
gawk "BEGIN{print mktime("""2004 09 28 20 57 00""")}
1096372620
試した版は以下の日付のものです。
GAWK EXE 446,464 05-12-23 0:24
GREP EXE 96,256 09-02-13 17:19
YAGREP EXE 233,472 09-03-31 2:28
grep.exe は、フォルダの再帰検索が安定しているので動いて嬉しいです。
GREP -Hnir "yagrep" *.*
yagrep.exe は、DCログの再帰検索で漏れが結構ありました。
Yagrep -r "yagrep" D:\log\fgal\DC\
この2つで比べてみてください。yagrep.exe の漏れは仕様かも。
テスト版の動作検証にご協力願います。m(__)m
- No.11645 -
このTreeへ
コメント元:11538 へ
[リストへもどる]
pre
(11538)
11646:
Re: DOSVAXJ3 (2024/11/15)テスト版
投稿者:
文太
2024/11/16(土) 15:51
11645 番 konno さんへのコメント コメント数 1
konnoさん
>yagrep.exe は、DCログの再帰検索で漏れが結構ありました。
お久です。うーん、すっかりPCいじりの世界からは遠のいております。
例によって、今日も超疲労モード。
さて、yagrep.exeですが、このようなテストには向かない道具かと思います。
Bruce.さんが、onigsed, yagrep とも、正規表現エンジン鬼車を搭載して、
GNU sed & grep を日本語対応させて移植してくれたものなのですが、詳細は
省かせていただきますが、僕はまったく使っていない、ないし使わないことに
したツールです。限界などをみきわめられれば使えるところを使うことは可能
なのかもしれませんが、ちょっと、、、。
対象ファイルに漏れがでる、ということですよね。僕はこれを経験して
いませんが、それ以外で、、、。うーん、考え方によってはヒットすべき
ものがヒットしていないから、あたかもそのファイルが検索されていないかの
ように見えることもあり得るのかな?
環境を試すツールがあれですと、環境かツールか? と沼にはまりそうな
気がします。
- No.11646 -
このTreeへ
コメント元:11645 へ
[リストへもどる]
soft
(11538)
11647:
Re^2: DOSVAXJ3 (2024/11/15)テスト版
投稿者:
konno
2024/11/16(土) 22:48
11646 番 文太 さんへのコメント コメント数 3
> お久です。うーん、すっかりPCいじりの世界からは遠のいております。
> 例によって、今日も超疲労モード。
文太さん、お久です。お元気そうで安心しました。
> さて、yagrep.exeですが、このようなテストには向かない道具かと思います。
> Bruce.さんが、onigsed, yagrep とも、正規表現エンジン鬼車を搭載して、
> GNU sed & grep を日本語対応させて移植してくれたものなのですが、詳細は
> 省かせていただきますが、僕はまったく使っていない、ないし使わないことに
> したツールです。限界などをみきわめられれば使えるところを使うことは可能
> なのかもしれませんが、ちょっと、、、。
私が使っている grep.exe は多分 GNU GREP だと思うんですが、yagrep は GNU系だったんですね。
今回のテストはあくまで DOSVAXJ3テスト版で動作するようになった32ビットの入力系コマンドの検証なので。
grep.exe などは今までは使えなかったのです。
> 対象ファイルに漏れがでる、ということですよね。僕はこれを経験して
> いませんが、それ以外で、、、。うーん、考え方によってはヒットすべき
> ものがヒットしていないから、あたかもそのファイルが検索されていないかの
> ように見えることもあり得るのかな?
この掲示板の過去ログで話題にしているかと思い検索したら、yagrep の癖など全部話題に出ていましたね。
#8206
> XXXX.HTM 219593: 需要予測
> だけど、この、「需要予測」 が、Yagrep だと検索引っかからないんですよ。
> 「予」が、$975C なので、「¥」$5C と認識しているのかも。
> --ctype=SJIS force matching in Shift-JIS mode
> このオプションを付けてもダメだったような。
#8210
> >だけど、この、「需要予測」 が、Yagrep だと検索引っかからないんですよ。
> 再現しました。
また MS-DOS player でも yagrep.exe は動かなかったんですが、それも
#7774 GREP の動作の違い
> MS-DOS Player + yagrep
> C:\VZ\K07T5>C:\UT\YAGREP.EXE "AF"
> 'C:\UT\YAGREP.EXE" "AF' は、内部コマンドまたは外部コマンド、
> 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
この時と同じメッセージなので、やはり32ビットの入力系コマンド対応は難しいということなのかも。
> 環境を試すツールがあれですと、環境かツールか? と沼にはまりそうな
> 気がします。
環境とは DOSエミュのことですよね、その違いがツールの動作に影響することは確かにありそうですね。
- No.11647 -
このTreeへ
コメント元:11646 へ
[リストへもどる]
pre
(11538)
11648:
Re^3: DOSVAXJ3 (2024/11/15)テスト版
投稿者:
文太
2024/11/17(日) 15:54
11647 番 konno さんへのコメント コメント数 1
konnoさん
C:\BIN>dir | grep -i "grep"
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
1999/11/11 00:00 82,944 OGREP.EXE
2009/03/31 02:28 233,472 yagrep.exe
1994/04/30 10:07 66,700 YGREP.EXE
1993/04/11 16:05 23,997 IZGREP.EXE
32ビットアプリと16ビットアプリ。上の3つは32ビット
だったのではないのかな?
https://www.vector.co.jp/soft/dos/util/se008484.html?_ga=2.40740194.1106177368.1731818139-1020062094.1731818139
これじゃないかな?
で、本文に戻ります。
>文太さん、お久です。お元気そうで安心しました。
基本的には元気で健康です。ただ今年はなんだかんだと忙しくて。
あと4か月半!
>今回のテストはあくまで DOSVAXJ3テスト版で動作するようになった32ビットの
>入力系コマンドの検証なので。
VTDOS以外のDOSエミュレータを使ってないので、よくは分からないのですが、
もしそれらがほんとの【DOS】(16bit)エミュレータなら、特別なことを
してくれてないと、32ビットアプリは動かないのが道理ですね。でも、rcp32.exe
とかも?
>この時と同じメッセージなので、やはり32ビットの入力系コマンド対応は難しい
>ということなのかも。
VTDOSが「ほにゃららホストに丸投げしてます」とかで、32/64bit 環境も意識して
作られている、ということなのでしょうか。
>> 環境を試すツールがあれですと、環境かツールか? と沼にはまりそうな
>> 気がします。"
>環境とは DOSエミュのことですよね、
はい、そのつもりです。考えてみたら、XPのDOS窓もDOSエミュでしたね。
rcp32.exeもclppst.exeも、ふつうに動いていた。
yagrep.exeがテストに向かないにせよ、一部動いた、みたいな結果だったのです
よね? 謎ですが。
>DOSVAXJ3テスト版で動作するようになった32ビットの入力系コマンド
(繰り返しですが)yagrep.exe以外の32ビット grep でのテストがよろしい
かと。
- No.11648 -
このTreeへ
コメント元:11647 へ
[リストへもどる]
pre
(11538)
11654:
Re^4: DOSVAXJ3 (2024/11/15)テスト版
投稿者:
konno
2024/11/18(月) 00:47
11648 番 文太 さんへのコメント コメント数 1
> C:\BIN>dir | grep -i "grep"
おお、パイプでこんなことが出来るんですね。勉強になりました。
てか、このパイプは VTDOS でしか使えないようですね。
DIR *grep* だと全ファイル表示してしまいますね。
tosfind.exe /n*grep* これは目的のファイルだけ表示してくれますが、下位フォルダまで表示してしまいますね。
mls.com /l *grep* これも目的のファイルだけ表示してくれますが、DOSVAXJ3では何故か全ファイル表示してしまいます。
LS系は目的ファイルだけ表示するものと全ファイル表示するものが混在しているようです。
余談になりました。(^^;
> https://www.vector.co.jp/soft/dos/util/se008484.html?_ga=2.40740194.1106177368.1731818139-1020062094.1731818139
> これじゃないかな?
日付もサイズも全然違うので別物だと思います。いつどこで落としたのか思い出せないです。(^^;
> 基本的には元気で健康です。ただ今年はなんだかんだと忙しくて。
> あと4か月半!
無理せず頑張ってください。
> もしそれらがほんとの【DOS】(16bit)エミュレータなら、特別なことを
> してくれてないと、32ビットアプリは動かないのが道理ですね。でも、rcp32.exe
> とかも?
かなり特別な処理をしてくれているようです。CLPPST.EXE がきっかけで対応してくれたのでありがたいです。
コピー系は ZCPY32.EXE が動くので rcp32.exe も大丈夫だと思います。
> VTDOSが「ほにゃららホストに丸投げしてます」とかで、32/64bit 環境も意識して
> 作られている、ということなのでしょうか。
結果的にパイプにも対応できているのは凄いことなんだなと改めて思いました。
> yagrep.exeがテストに向かないにせよ、一部動いた、みたいな結果だったのです
> よね? 謎ですが。
他のDOSエミュでも同じ結果のようなので、やはり yagrep.exe 自体の問題と思われます。
> (繰り返しですが)yagrep.exe以外の32ビット grep でのテストがよろしい
> かと。
常用の grep が動いているのでおおむね問題なさそうだと思います。
- No.11654 -
このTreeへ
コメント元:11648 へ
[リストへもどる]
pre
(11538)
11657:
パイプと同等の処理を BATで
投稿者:
konno
2024/11/19(火) 20:28
11654 番 konno さんへのコメント
> > C:\BIN>dir | grep -i "grep"
> おお、パイプでこんなことが出来るんですね。勉強になりました。
> てか、このパイプは VTDOS でしか使えないようですね。
こういうパイプは BAT で同等の処理が出来るかもと思いやってみました。
dirp.bat
rem dir | grep -i "grep"
dir > c:\tmp\pipe.tmp
grep -i %1 c:\tmp\pipe.tmp
dirp grep
で、同等の結果が得られました。
パイプの記述より短くすむのと、どのDOSエミュでも動くのが利点です。
名前は dirg の方がいいかしら?
この手法は応用が利きそうですね。(^_^)
- No.11657 -
このTreeへ
コメント元:11654 へ
[リストへもどる]
soft
(11538)
11649:
Re^3: DOSVAXJ3 (2024/11/15)テスト版
投稿者:
文太
2024/11/17(日) 16:02
11647 番 konno さんへのコメント コメント数 1
konnoさん
C:\BIN>dir | grep -i "awk"
1993/09/25 05:51 188,444 JGAWK.EXE 16bit
1998/08/22 22:01 142,759 MAWK32.EXE コレ
サイズからして日本語対応してなさそう
C:\BIN>dir | grep -i "sed"
1988/03/02 06:11 15,366 OLDSED.EXE 16bit
1999/06/20 13:40 90,112 sed32.exe コレ
日本語対応してそう
grepと同じことは、sed, awkでもできます。タイムスタンプとかファイル
サイズだけみて、上のリストはいい加減なことを言っている可能性が
あります。oldsed.exeとかは、serowさんの超古典の奴です。
ベクタで探してみてください。
- No.11649 -
このTreeへ
コメント元:11647 へ
[リストへもどる]
pre
(11538)
11651:
Re^4: DOSVAXJ3 (2024/11/15)テスト版
投稿者:
としき
2024/11/17(日) 17:38
参照先:http://toshiki.la.coocan.jp/
11649 番 文太 さんへのコメント コメント数 1
> 1993/09/25 05:51 188,444 JGAWK.EXE 16bit
> 1998/08/22 22:01 142,759 MAWK32.EXE コレ
> サイズからして日本語対応してなさそう
うちのawkは
JGAWK EXE 188,444 93-09-25 5:51
MAWK32 EXE 193,536 98-08-22 23:02
こうなっていますが、いずれも日本語対応しています。
って、mawk32は、なんかすげぇ微妙なバージョンの差異があるかも。
> grepと同じことは、sed, awkでもできます。
御意。
単に専用ツールか多機能ツールかの違いだけ。
鶏を割くのに牛刀を使って何が悪い。
- No.11651 -
このTreeへ
コメント元:11649 へ
[リストへもどる]
pre
(11538)
11652:
mawk32.exe
投稿者:
文太
2024/11/17(日) 20:15
11651 番 としき さんへのコメント コメント数 1
としきさん
(以下すべて、VTDOS環境です)
多謝。ベクタにありました。ソースもありました(???.tar.gzの展開の
仕方わすれたのだけど)。
C:\WK>dir
1997/11/01 11:02 44,369 mawk.doc
1998/08/22 22:02 193,536 mawk32.exe
1996/09/18 10:23 2,524 README
1998/08/22 21:59 6,390 README.SJ
----- t.txt -----
まだ何か思いつくの?
ディレクトリ再帰について。
-----------------
----- t.awk -----
/ディレクトリ/{
print}
-----------------
C:\WK>mawk32.exe -f t.awk t.txt
ディレクトリ再帰について。
>って、mawk32は、なんかすげぇ微妙なバージョンの差異があるかも。
ファイルサイズからして、僕のmawk32.exeは、日本語対応のない
英語圏から落とした奴だったんじゃないかな。
タイムスタンプが、え、え、え??? という感じだったけど。
無事、日本語対応 mawk32 がゲットできました。多謝。
16bit の jgawk.exeしか、ほとんど使ったことないのだけど。
蛇足:
C:\WK>mawk32 -W version(新版)
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
Adaptation for MBCS (P. yedoensis R27) by KIMURA Koichi
C:\WK>cd c:\bin
C:\BIN>mawk32 -W version(旧版)
VTDOSがはじいて、「アプリケーションエラー」
おめでとう! きっと使わないけど、使える mawk32.exe だ!
- No.11652 -
このTreeへ
コメント元:11651 へ
[リストへもどる]
pre
(11538)
11653:
.tar.gz 展開(by LHMelting)
投稿者:
文太
2024/11/17(日) 23:00
11652 番 文太 さんへのコメント
自己レスです。
> 多謝。ベクタにありました。ソースもありました(???.tar.gzの展開の
>仕方わすれたのだけど)。
LHMelting を使うのは久しぶりでしたが、mawk-1.3.3-mbcs.tar.gz を無事、
解凍できました。mawk のソース、あひゃひゃひゃひゃ状態。
これを勉強する日は、ないんだろうなぁ。
Win11 (64bit) でも、LHMelting 動きますね。
- No.11653 -
このTreeへ
コメント元:11652 へ
[リストへもどる]
soft
(11538)
11650:
Re^3: DOSVAXJ3 (2024/11/15)テスト版
投稿者:
文太
2024/11/17(日) 16:18
11647 番 konno さんへのコメント コメント数 1
konnoさん
まだ何か思いつくの?
ディレクトリ再帰について。
Wild -D -R "head -7 $f >c:\wk\$x" c:\bin\asm_stdy\*.doc
ドックを詳細に読まないと意味不明かもしれませんが、wild.doc
の冒頭に上のメモがありました。
Siさん作の、wild.exe(16bit, 32bit 両方の版あり)の
コマンドサンプルです。
「ファイル冒頭7行を見せろ」という命令のようです。
-D は、Dummy で、ワイルドカードの展開の様子だけデモせよ、という
意味だったと思う。
-R が、Recursive(再帰)の意味だったと思う。
「c:\bin\asm_stdy\」以下の *.doc が対象ファイル。
grep, sed, awk (その他のフィルター系ツール)は、多くの場合、
ディレクトリ再帰のオプションがありません。
wildをかませると再帰できるよ、ということです。
実用性を付け加えて、問題を複雑にしている、という気はしています。
- No.11650 -
このTreeへ
コメント元:11647 へ
[リストへもどる]
soft
(11538)
11656:
Re^4: DOSVAXJ3 (2024/11/15)テスト版
投稿者:
konno
2024/11/19(火) 20:07
11650 番 文太 さんへのコメント コメント数 1
> ディレクトリ再帰について。
> Wild -D -R "head -7 $f >c:\wk\$x" c:\bin\asm_stdy\*.doc
これは使ったことが無いので使い方を理解するのに時間が掛かりました。
head というコマンドが必要だったんですね。VECTORで落としましたが、type でも動きました。
が、DOSVAXJ3 では何故か動かなかったです。
MS-DOS のバージョンが違います. とヒット数ぶん表示して終わります。
これは16ビット版と32ビット版どちらも同じエラー表示です。
内蔵のコマンドラインの解釈によるのかなとか思いました。
> 実用性を付け加えて、問題を複雑にしている、という気はしています。
まさに動作が複雑すぎて問題の原因がわかりにくくなってしまってますね。(^^;
入力系といえば、more.exe がありましたね。Win10のもので試しました。
DOSVAXJ3最新版で試しましたが、そのままでは表示無しで終了しました。
set dosvaxj3=novc
の後で試しても同じでした。
set dosvaxj3=noinput
の後で試すと、表示が途中で止まらないで終了しました。
使ってないので困ってはいないですが、VC系のコマンドではないのかなぁ。
- No.11656 -
このTreeへ
コメント元:11650 へ
[リストへもどる]
soft
(11538)
11658:
wild.exe と ディレクトリ再帰
投稿者:
文太
2024/11/19(火) 21:28
11656 番 konno さんへのコメント コメント数 1
konnoさん
うーむ、どう回答したものやら?
おそらく一番大事なのは、
>が、DOSVAXJ3 では何故か動かなかったです。
でしょうか。
これは、DOSVAXJ3の作者様に報告していただくしかないでしょう。
僕は、VTDOS以外、DOSエミュレータを知らないんです。
VTDOSをよく知っているわけでは、まったくありませんが。
で、元にもどっていちおう整理を試みると、なぜwild.exeが登場したかと
いうと、yagrepで「ディレクトリ再帰」が変、とkonnoさんが仰っていたから
です。
以下の表をみてください。16bit の grep で「ディレクトリ再帰」が
オプションで可能なのは、wgrep, ygrep, jgslimだけだそうです。
cgrep Ggrep akgrep wgrep ygrep izgrep dgrep jgslim zf
directory下再帰 -u -r -a
で、grep, sed, awk にも、ふつうその機能はないけれど(多くのフィルタ系
ツールも)、wild.exeをかませると、それが可能ですよ、と実用的なことを
話に僕がまぎれこませた、ということです。
wild.exeは、ワイルドカード展開を助けてくれる、いわばメタツールで、
ですから
Wild -D -R "head -7 $f >c:\wk\$x" c:\bin\asm_stdy\*.doc
の"head -7 $f >c:\wk\$x"の部分は、展開されるべきワイルドカードを
含んだコマンドなのです。
コマンドの中身が、"head -7"(ファイルの冒頭7行を表示。8行目以降は
見せるな)で、$f がワイルドカード的に展開されるべき対象ファイル名です。
(typeだと、冒頭7行だけ、というわけにはいかないでしょう?)
$f, $x を Siさんは「マクロ」とドックで呼んでいたと思いますが、
wildの使い方は、wild.doc を読んでもらって試してもらうのがはやいです
(必要ないでしょうけれど。必要がなければ、けっこう難解です)。
「ディレクトリ再帰」がないツールにその機能を付加する。これがwild.exe
のお仕事であり、ここで登場してもらった理由です。
さらに元にもどって。
DOSVAXJ3 のテスト。これがkonnoさんの主目的ですよね?
だとしたら、まず、VTDOSと結果を比較するのがよいのではないでしょうか?
意図的なのかもしれないけど、僭越ながら申し上げると、割と迷走モード
っぽいような印象を受けました。
パイプにせよ、ワイルドカードの展開にせよ。
もっとも、ワイルドカードの展開は、外部ツールでは、そいつがすることに
なっていたと思うけど。
dir みたいな内部コマンドだと、さて誰が展開するのでしょう? ですが。
command.com? あるいは、DOSエミュレータ本体?
上のくだりでは、僕自身が迷走してますが、ま、今の僕の課題ではないので、
ご容赦ください。
大量に本を捨てている毎日ですが(仕事おさめ)、DOS関係本はとって
あります! fortranとpascal関係本は、うう、どうしよう? ですが。
とっとく!
追伸:「引用なし」ボタン。最高です。僕はこれを愛してます。
- No.11658 -
このTreeへ
コメント元:11656 へ
[リストへもどる]
pre
(11538)
11659:
Re: wild.exe と ディレクトリ再帰
投稿者:
konno
2024/11/20(水) 14:25
11658 番 文太 さんへのコメント コメント数 1
> >が、DOSVAXJ3 では何故か動かなかったです。
> これは、DOSVAXJ3の作者様に報告していただくしかないでしょう。
作者様にメールしたんですが、その後に私の設定ミスが原因だったことが判明しました。(>_<)
> 余談ですが、Si氏の wild.exe というワイルドカードを付与するコマンドが動きません。
> MS-DOS のバージョンが違います. とヒット数ぶん表示して終わります。
> これは16ビット版と32ビット版両方ありますが、どちらも同じエラー表示です。
この件ですが、私の dosboxj.conf の設定が原因でした。
非常駐VZのコマンドラインで何を入れてもエラーになるので気が付きました。
dosboxj.exe を10/11版まで戻しても変わらなかったので、dosboxj.confを見てみました。
[autoexec] セクションで
set COMSPEC=c:\ut\95\COMMAND.COM
これが入っていて、Win98ME の command.com が呼ばれていたようです。
いつ入れたのか覚えていなくて、気がつかなかったのです。
ここをコメントにしたら正常に動作しました。
お騒がせして申し訳ないです。すみませんでした。
作者様に謝罪メールしました。m(__)m
> で、元にもどっていちおう整理を試みると、なぜwild.exeが登場したかと
> いうと、yagrepで「ディレクトリ再帰」が変、とkonnoさんが仰っていたから
> です。
再帰というわけではなく、検索漏れが多かったのです。これは過去ログでも言っていました。
> 以下の表をみてください。16bit の grep で「ディレクトリ再帰」が
> オプションで可能なのは、wgrep, ygrep, jgslimだけだそうです。
> で、grep, sed, awk にも、ふつうその機能はないけれど(多くのフィルタ系
> ツールも)、wild.exeをかませると、それが可能ですよ、と実用的なことを
> 話に僕がまぎれこませた、ということです。
grep に再帰機能が無いのが普通なのですね。知りませんでした。
私が常用している wgrep と grep(32) にはどちらにも再帰機能があったもので。
そういう意味では wild.exe のご紹介はありがたい情報でした。
wild.exe って、ワイルドカードの機能を付加してくれるだけだと思っていたもので。
> DOSVAXJ3 のテスト。これがkonnoさんの主目的ですよね?
> だとしたら、まず、VTDOSと結果を比較するのがよいのではないでしょうか?
うーん、私の書き方がよくないのかなぁ。3種のDOSエミュで比べた結果を書いているつもりなんですが。
主語が無いからかなぁ。そもそも比較無しでは変だとかわからないし。
> dir みたいな内部コマンドだと、さて誰が展開するのでしょう? ですが。
> command.com? あるいは、DOSエミュレータ本体?
このあたりの疑問が今回の迷走に繋がっているかもですね。(^^;
> 大量に本を捨てている毎日ですが(仕事おさめ)、DOS関係本はとって
> あります! fortranとpascal関係本は、うう、どうしよう? ですが。
> とっとく!
やはり文系の人は本が大量にあるのですね。うちはそれほどないですが、腐海で腐ってます。(^^;
> 追伸:「引用なし」ボタン。最高です。僕はこれを愛してます。
わずかの手間の差と思いますが、そう言っていただくと嬉しいです。
- No.11659 -
このTreeへ
コメント元:11658 へ
[リストへもどる]
soft
(11538)
11660:
Re^2: wild.exe と ディレクトリ再帰
投稿者:
文太
2024/11/20(水) 21:37
11659 番 konno さんへのコメント コメント数 1
konnoさん
>作者様にメールしたんですが、その後に私の設定ミスが原因
原因が判明してよかったですよね。
やっぱり作者様に報告したのに、自分のミスだったというのは
格好が悪いかもしれませんが、良好な関係ができていたら、「ごめん、
こっちのミス」もありでしょう。というか、僕はそればっかの人生みたい。
>[autoexec] セクションで
>set COMSPEC=c:\ut\95\COMMAND.COM
そ、そんなディレクトリがあるんですか?! さすが。
Win95系のツールとかも、ここに格納されていると。
>再帰というわけではなく、検索漏れが多かったのです。
#11645
>grep.exe は、フォルダの再帰検索が安定しているので動いて嬉しいです。
>GREP -Hnir "yagrep" *.*
>yagrep.exe は、DCログの再帰検索で漏れが結構ありました。
>Yagrep -r "yagrep" D:\log\fgal\DC\
どっちにも、-r (recursive) がはいってますけど、、、。
「再帰検索が安定」あるいは「漏れ」では、再帰に問題があると書かれて
いるように思われるのですが。
細かくて、すみませぬ。
ただ、現実的にいって、yagrep.exeには、いろんな問題があると思います。
僕はHDから消してしまってもいいくらいの信頼感です。
これだけ指摘したかったのです。
もっとも、grep に Perl5 の正規表現は、僕ですら大して欲していなかった
と思う。
たぶんkonnoさんがお使いのgrep(32)もGNUのものでしょうから、「GNU
による拡張」ですが、ちゃんと Perl5 の正規表現が使えます。
-P
--perl-regexp
matching Perl regular expressions
Interpret the pattern as a Perl regular expression.
ま、yagrepとonigsedについては、僕のような非力&根性なし
テスターしかいなかった、というのが不幸の原因でした。konnoさんが、Bruce.
さんと一緒だったら、きっともっと完成度の高いものになっていたでしょう。
2009/03/31 02:28 233,472 yagrep.exe
15年まえ。僕がテスターをしたのは、これより2年前くらいだったのかな?
- No.11660 -
このTreeへ
コメント元:11659 へ
[リストへもどる]
pre
(11538)
11661:
Re^3: wild.exe と ディレクトリ再帰
投稿者:
konno
2024/11/21(木) 16:15
11660 番 文太 さんへのコメント コメント数 1
> やっぱり作者様に報告したのに、自分のミスだったというのは
> 格好が悪いかもしれませんが、良好な関係ができていたら、「ごめん、
> こっちのミス」もありでしょう。というか、僕はそればっかの人生みたい。
私も最近メールのやり取りが増えたんですが、自爆タコミスの謝罪は多いです。(>_<)
> >set COMSPEC=c:\ut\95\COMMAND.COM
> そ、そんなディレクトリがあるんですか?! さすが。
> Win95系のツールとかも、ここに格納されていると。
いや、command.com だけです。って今見たら Win95 のだった。いいかげんですみません。
> 「再帰検索が安定」あるいは「漏れ」では、再帰に問題があると書かれて
> いるように思われるのですが。
再帰の時だけ漏れが増えるとかは普通考えられないと思うし、それだとワイルドもどうなのと思ってしまいます。
でも絶対ないとは言えないか・・・
#11647で
> #8206
> > XXXX.HTM 219593: 需要予測
> > だけど、この、「需要予測」 が、Yagrep だと検索引っかからないんですよ。
> > 「予」が、$975C なので、「¥」$5C と認識しているのかも。
ここでは再帰とは言っていないし。共通項は「検索漏れ」です。
思うにユニコード用のツールはSJISにも完全対応させるのは難しいのだろうと思います。
万能で完全なツールなんて無いので、それぞれの環境や使い方に合ったものを選択するのが吉かと。
私は正規表現はほとんど使わないし、それよりオア検索したいので CODEX.DEF を愛用しているんですね。
> たぶんkonnoさんがお使いのgrep(32)もGNUのものでしょうから、「GNU
> による拡張」ですが、ちゃんと Perl5 の正規表現が使えます。
正規表現は使えれば便利ですが、私はほとんど使ってないので、通常検索で漏れの少ないものを選んだのです。
> ま、yagrepとonigsedについては、僕のような非力&根性なし
> テスターしかいなかった、というのが不幸の原因でした。konnoさんが、Bruce.
> さんと一緒だったら、きっともっと完成度の高いものになっていたでしょう。
私は正規表現もフィルター系ツールもあまり使ってないのでこの方面は文太さんの方が適任ですよね。
私が苦手なだけか。としきさんやめざらさんにも教えてもらうことが多いですからね。(^^;
- No.11661 -
このTreeへ
コメント元:11660 へ
[リストへもどる]
soft
(11538)
11662:
ren grep fgrep
投稿者:
文太
2024/11/21(木) 19:01
11661 番 konno さんへのコメント コメント数 2
konnoさん
C:\>yagrep --help
(中略)
multi-byte extention:
--ctype=ASCII force matching in ASCII mode
--ctype=EUC force matching in EUC-JP mode
--ctype=SJIS force matching in Shift-JIS mode
--ctype=UTF8 force matching in UTF-8 mode
このオプションで明示的に SJIS mode でも、うーん、な結果だったと
思います。
とにかく、僕的なポイントは、yagrepで何かをテストすると沼です、
これだけです。
>正規表現は使えれば便利ですが、私はほとんど使ってないので、通常検索で漏れの
>少ないものを選んだのです。
こういう時は、grep.exe を 別ディレクトリにコピーの上、fgrep.exeに
リネームしましょう。正規表現が殺されます。すると、正規表現のメタ文字を
エスケープする手間が完全に省けます。意外にメタ文字に転んだりしてます。
- No.11662 -
このTreeへ
コメント元:11661 へ
[リストへもどる]
pre
(11538)
11663:
Re: ren grep fgrep
投稿者:
konno
2024/11/21(木) 22:52
11662 番 文太 さんへのコメント コメント数 1
> このオプションで明示的に SJIS mode でも、うーん、な結果だったと
> 思います。
過去ログでこのような話は見たような気がします。
> とにかく、僕的なポイントは、yagrepで何かをテストすると沼です、
> これだけです。
Parl5の正規表現と、GNUGREPの検索エンジンの相性か何かが悪いのかもですね。SJIS関連かも。
> こういう時は、grep.exe を 別ディレクトリにコピーの上、fgrep.exeに
> リネームしましょう。正規表現が殺されます。すると、正規表現のメタ文字を
> エスケープする手間が完全に省けます。意外にメタ文字に転んだりしてます。
えっ、GNU系GREPにはこんな機能があるのですか。早速 OMAKE.DEFに仕込んで DCフォルダで試してみました。
まずは今まで通りで
D:\LOG\FGAL\DC>GREP -nir "yagrep.exe" *.*
No files matching: *.*
FGREPに名前を変更すると
D:\LOG\FGAL\DC>FGREP -nir "yagrep.exe" *.*
13/bak/yagrep.log:107:YAGREP.exe -i -H -n "^v\.c\.\/salon" c:\lx\log\vzlog\mixvz\mixvz91\vz901003.log >mixxx
13/bak/yagrep.log:177:> YAGREP.exe -i -H -n "^v\.c\.\/salon" c:\lx\log\vzlog\mixvz\mixvz91\vz901003.log >mixxx
更に深い階層から見つけ出してくれました。\(^^)/ ヤッタ-
これは良いですね、これからはこれで行きます。GREP も残しておいて比較してみます。
おいしい使い方を教えてくれてありがとうございます。
- No.11663 -
このTreeへ
コメント元:11662 へ
[リストへもどる]
pre
(11538)
11664:
Re^2: ren grep fgrep
投稿者:
文太
2024/11/22(金) 00:31
11663 番 konno さんへのコメント コメント数 2
konnoさん
konnoさんが試した結果については、うまく理解できませんでした。
頭が働いてない。
grep では、"yagrep.exe"は、「.」が何でもあり(メタキャラ)、となり
fgrepでは、"yagrep.exe"は、「.」がピリオドと解釈されるはずです。
>GREP も残しておいて比較してみます。
残しておきましょう。
GNU特有だったか思い出せませんが、grepは、
grep のままだど、basic regex (sed 相当)
egrep とリネームすると、extended regex (vwx 相当。awk 相当)
fgrep とリネームすると、no regex となります。
3つ、grep.exe, egrep.exe, fgrep.exe をHDDに入れておいて
損はないと思います。
とはいえ、grep 1つでも、オプションで、egrep, fgrep 相当に
振る舞えたはずだとは思いますが。
fgrep.exe を使いたいときは、けっこう特殊だと思う。
egrep.exe を使いたいときは、「拡張正規表現使うからな」(メタ
キャラ、+とか)と、思うと思う。
3つ、c:\bin ディレクトリに入れておいて、損はないと思います。
- No.11664 -
このTreeへ
コメント元:11663 へ
[リストへもどる]
pre
(11538)
11665:
>grep -E and >grep -F
投稿者:
文太
2024/11/22(金) 17:43
11664 番 文太 さんへのコメント コメント数 2
konnoさん
たぶん、こうなるのが正しいでしょう。
C:\WK>type t.txt (対象ファイルの中身)
yagrep.exe
yagrepxexe ;2行目は「.」でなく「x」
C:\WK>grep "yagrep.exe" t.txt(「.」はメタキャラ)
yagrep.exe
yagrepxexe ;両方ヒットする
C:\WK>fgrep "yagrep.exe" t.txt
yagrep.exe ;リテラルなのでピリオドだけヒットする
grep.exe, egrep.exe, fgrep.exe は最近では廃止されて、かわりに
grep -E, grep -F を使え、ということらしいです。
たぶん、古くからの UNIX的慣習で、egrep, fgrep へのリネーム技が
互換性の意味で、残されているみたいでした。
GREP(1) UNIX Programmer's Manual GREP(1)
There are three major variants of grep, controlled by the
following options.
-G Interpret pattern as a basic regular expression
(see below). This is the default.
-E Interpret pattern as an extended regular expression
(see below).
-F Interpret pattern as a list of fixed strings, sepa-
rated by newlines, any of which is to be matched.
In addition, two variant programs egrep and fgrep are
available. Egrep is similiar (but not identical) to
grep -E, and is compatible with the historical Unix egrep.
Fgrep is the same as grep -F.
とあります。うーん、"fixed strings"か。regexでない、という意味?
エンジンの動き方が違うのかな?
質問されても、たぶん答えられないと思う。内容も英語も。
追記:fixed strings は「固定長文字列」と訳されていました。なるほど。
"a+" というパターンだと、ヒット文字列は、「a」も「aa」もありうる。
これは「固定長」ではないですね。
- No.11665 -
このTreeへ
コメント元:11664 へ
[リストへもどる]
pre
(11538)
11667:
Re: >grep -E and >grep -F
投稿者:
konno
2024/11/22(金) 18:20
11665 番 文太 さんへのコメント コメント数 1
> たぶん、こうなるのが正しいでしょう。
> C:\WK>fgrep "yagrep.exe" t.txt
> yagrep.exe ;リテラルなのでピリオドだけヒットする
リテラルって直値という意味ですか? こっちの方が意味不明です。
私の解釈では、正規表現無しなら全て単純な文字列として扱われると思ったし、結果も一致しています。
> grep.exe, egrep.exe, fgrep.exe は最近では廃止されて、かわりに
> grep -E, grep -F を使え、ということらしいです。
> たぶん、古くからの UNIX的慣習で、egrep, fgrep へのリネーム技が
> 互換性の意味で、残されているみたいでした。
なるほど。私のは2009年版なのでまだ古い方なのかもしれないですね。
- No.11667 -
このTreeへ
コメント元:11665 へ
[リストへもどる]
pre
(11538)
11669:
Re^2: >grep -E and >grep -F
投稿者:
文太
2024/11/22(金) 20:01
11667 番 konno さんへのコメント
konnoさん
>リテラルって直値という意味ですか? こっちの方が意味不明です。
「文字通り」という意味で、メタキャラの意味を持たない、という意味です。
>私の解釈では、正規表現無しなら全て単純な文字列として扱われる
正しいと思います。
- No.11669 -
このTreeへ
コメント元:11667 へ
[リストへもどる]
soft
(11538)
11668:
Re: >grep -E and >grep -F
投稿者:
文太
2024/11/22(金) 19:58
11665 番 文太 さんへのコメント
separated by newlines
自己レスです。
GREP
-F Interpret pattern as a list of fixed strings, sepa-
rated by newlines, any of which is to be matched.
タイトルの意味が分からなかったんですよね。
C:\WK>type t.txt
zzzzzzzzzzzz
yagrep.exe
yagrepxexe
zzzzzzzzzzzz
C:\WK>type t.grp
yagrep.exe
yagrepxexe
C:\WK>fgrep -f t.grp t.txt
yagrep.exe
yagrepxexe
-f は、sed, awk などでも使う、スクリプトファイル指定のオプション
です。grep で、パターン【ファイル】を使うことは思いつきませんでした。
パターンファイル内に、「改行くぎり」で複数パターンを書くことが
でき、「どれとでも」(any)マッチします。こういう意味でした。
FGREPでは、正規表現抜きのオア検索になりますね。
- No.11668 -
このTreeへ
コメント元:11665 へ
[リストへもどる]
pre
(11538)
11666:
Re^3: ren grep fgrep
投稿者:
konno
2024/11/22(金) 18:09
11664 番 文太 さんへのコメント コメント数 2
> grep では、"yagrep.exe"は、「.」が何でもあり(メタキャラ)、となり
> fgrepでは、"yagrep.exe"は、「.」がピリオドと解釈されるはずです。
これはつまり、どちらでもヒットするはず、ということですか。
結果的には fgrep のほうだけヒットしたので、メタキャラの解釈にバグがあるかもしれないということ?
私的には検索漏れがあるのは駄目、ということで正規表現無しのほうが良いということになるのでした。
> GNU特有だったか思い出せませんが、grepは、
> grep のままだど、basic regex (sed 相当)
> egrep とリネームすると、extended regex (vwx 相当。awk 相当)
> fgrep とリネームすると、no regex となります。
> 3つ、grep.exe, egrep.exe, fgrep.exe をHDDに入れておいて
> 損はないと思います。
私の手持の GREP のZIPが32ギガのUSBメモリの中にありました。
grep-2.5.4-bin.zip
2018/10/06 00:36 451,824 grep-2.5.4-bin.zip
\bin\
2009/02/13 17:19 92,160 egrep.exe
2009/02/13 17:19 54,784 fgrep.exe
2009/02/13 17:19 96,256 grep.exe
機能別に3種の実行ファイルに分れているようです。
私は手軽に使い分けられるリネーム式でいきます。EGREP は使うことは無いと思います。
> とはいえ、grep 1つでも、オプションで、egrep, fgrep 相当に
> 振る舞えたはずだとは思いますが。
オプションだと意味を忘れてしまうので。(^^;
- No.11666 -
このTreeへ
コメント元:11664 へ
[リストへもどる]
pre
(11538)
11670:
Re^4: ren grep fgrep
投稿者:
文太
2024/11/22(金) 20:25
11666 番 konno さんへのコメント コメント数 2
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さんがやっていることが、僕にはよく読めて
いないような感じがしています。
ちゃんとしたツールで、「漏れ」とか、あってはいけないような気がします。
僕の書くマクロじゃないんだし。
- No.11670 -
このTreeへ
コメント元:11666 へ
[リストへもどる]
pre
(11538)
11672:
釈迦説、テスト依頼
投稿者:
文太
2024/11/22(金) 22:20
11670 番 文太 さんへのコメント コメント数 2
konnoさん、
もう試されているかもしれませんが。
以下を参考にしました。
-------------------------------------------
D:\LOG\FGAL\DC>GREP -nir "yagrep.exe" *.*
No files matching: *.*
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
-------------------------------------------
D:\LOG\FGAL\DC\3\BAK>GREP -i "yagrep.exe" yagrep.log
これでどうなりますか?
できたら、VTDOS と、その他のDOSエミュで結果を比較してみてください。
こっから先は、どうぞ。
もしかしてDOSエミュに原因が、、、とか、あるの?
- No.11672 -
このTreeへ
コメント元:11670 へ
[リストへもどる]
pre
(11538)
11673:
釈迦説、テスト依頼2
投稿者:
文太
2024/11/22(金) 22:24
11672 番 文太 さんへのコメント
こっちはどうですか?
D:\LOG\FGAL\DC\3\BAK>wgrep -i "yagrep.exe" yagrep.log
- No.11673 -
このTreeへ
コメント元:11672 へ
[リストへもどる]
soft
(11538)
11675:
Re: 釈迦説、テスト依頼
投稿者:
文太
2024/11/22(金) 23:16
11672 番 文太 さんへのコメント
自己レスです。
>こっから先は、どうぞ。
僕なら、-r がちゃんと機能してるか調べると思います。
VTDOS と それ以外のDOSエミュレータで。
- No.11675 -
このTreeへ
コメント元:11672 へ
[リストへもどる]
soft
(11538)
11678:
Re^5: ren grep fgrep
投稿者:
konno
2024/11/23(土) 15:58
11670 番 文太 さんへのコメント コメント数 2
混線しているのでここにつけます。
> >これはつまり、どちらでもヒットするはず、ということですか。
> >結果的には fgrep のほうだけヒットしたので、メタキャラの解釈にバグがあるかもしれないということ?
そもそもの混乱の発端はこの書き込みでしたね。
結論から言うとこの書き込みは間違いでした。
文太さんは、これはおかしいんじゃないかと言いたかったのですね。やっと理解できました。
上のバグか? という書き込みは寝室のPCでやった結果なのですが、別のPCで試したらどちらでもヒットしました。
それで寝室PCに問題の原因があると思い、VTDOSのメモリ状態を疑ったりDISCを疑ったりもしました。
最後に grep.exe の存在確認をしたら・・・あると思っていたものが無かったのです。
> grep で結果が出ず(ヒットなし)、fgrepで結果が出る(ヒットあり)。何かおかしいようには
> 思われます。
> konnoさんが考えていること、というより、konnoさんがやっていることが、僕にはよく読めて
> いないような感じがしています。
> ちゃんとしたツールで、「漏れ」とか、あってはいけないような気がします。
つまり、私が大ポカミスをしていたということで、文太さんの疑念が正しかったのでした。m(__)m
何故そうなったのか。リネームして退避していた実行ファイルを戻す。と言う操作をしたときに誤操作したのか?
実行ファイルのフォルダには e の欠けたファイルが残っていました。
2009/02/13 09:19 96,256 grep.ex
しかしこれは元のファイルとは日付の時間が微妙に違っています。
2009/02/13 17:19 96,256 grep.exe 元のファイル
FC BIN で比較すると中身は同じでした。・・・ん? もしかして標準時間の差?
どうもコピー時にトラブってこうなったように見えますが、わかりません。
では、存在しないはずの grep はどこから呼ばれたのか? Windowsのファルダにはありませんでした。
PATH=c:\ut;c:\;c:\bcc\bin;c:\tc;c:\tc\INCLUDE;c:\tc\LIB;c:\windows;c:\windows\system32;
パスを順に見ていったら、\tc\ の中にありました。(^^;
C:\TC のディレクトリ
1989/05/11 02:01 7,029 GREP.COM
これは古いですね。だから再帰で読めなかったのでしょう。
大変お騒がせしてすみませんでした。m(__)m
# 大山鳴動して鼠一匹とはこのことか(違
- No.11678 -
このTreeへ
コメント元:11670 へ
[リストへもどる]
pre
(11538)
11679:
おち
投稿者:
文太
2024/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 をした可能性もあるかも。意図してやったのに、
忘れた、とか。僕ならありえます。
しょうがないので、超絶技を披露いたしましょう!
- No.11679 -
このTreeへ
コメント元:11678 へ
[リストへもどる]
pre
(11538)
11680:
超絶技@VTDOS
投稿者:
文太
2024/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、ですが。
- No.11680 -
このTreeへ
コメント元:11679 へ
[リストへもどる]
pre
(11538)
11681:
超絶でも何でもない
投稿者:
文太
2024/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環境です。
- No.11681 -
このTreeへ
コメント元:11680 へ
[リストへもどる]
pre
(11538)
11682:
wgrep -u について
投稿者:
文太
2024/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。これらをはやく調整して調達しないと。
- No.11682 -
このTreeへ
コメント元:11681 へ
[リストへもどる]
pre
(11538)
11683:
wild.exe or VTDOS の限界
投稿者:
文太
2024/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 が十分な仕事をしてくれるはずです。
けっきょくこういうの、好きなんだなぁ。
睡眠不足と戦ってます。糖尿病とも戦ってます。
- No.11683 -
このTreeへ
コメント元:11682 へ
[リストへもどる]
soft
(11538)
11686:
Re: wgrep -u について
投稿者:
としき
2024/11/24(日) 00:03
参照先:http://toshiki.la.coocan.jp/
11682 番 文太 さんへのコメント コメント数 3
> 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。
- No.11686 -
このTreeへ
コメント元:11682 へ
[リストへもどる]
pre
(11538)
11688:
Re^2: wgrep -u について
投稿者:
文太
2024/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アプリの癖です、とか?
- No.11688 -
このTreeへ
コメント元:11686 へ
[リストへもどる]
soft
(11538)
11691:
Re^3: wgrep -u について
投稿者:
文太
2024/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です。
としきさんに多謝。すげえな、やっぱり。年季がちがう。
だって、あれだけの連投を読み込んだうえでの、これだよ。
ほんと、ありがと。
- No.11691 -
このTreeへ
コメント元:11688 へ
[リストへもどる]
pre
(11538)
11700:
Re^4: wgrep -u について
投稿者:
としき
2024/11/24(日) 11:04
参照先:http://toshiki.la.coocan.jp/
11691 番 文太 さんへのコメント コメント数 1
> でも、ファイルがないディレクトリだけの階層は挟むな、これで
> OKです。
いってることは伝わるかもしれませんが、としき的には微妙に不正確。
カレントに .txt のファイルがあれば、以下の階層に一つも .txt がなくても
wgrepはこけません。すなわち、ファイル検索の起点にさえ対象のファイルが
ありさえすれば、以下のディレクトリにはファイルがない階層が挟まって
いても問題ない、というのがとしき的な表現です。
#いいじゃねぇか、そんなこまけぇこと
- No.11700 -
このTreeへ
コメント元:11691 へ
[リストへもどる]
soft
(11538)
11701:
Re^5: wgrep -u について
投稿者:
文太
2024/11/24(日) 12:39
11700 番 としき さんへのコメント
としきさん
>#いいじゃねぇか、そんなこまけぇこと
でもないですよ。
いつの日にか、この「wgrep -u について」のやり取りをグレップで
発見し、おお、先人の方、としきさん、感謝、m(__)m となるかもしれない。
>ファイル検索の起点にさえ対象のファイルがありさえすれば、
なるほど。試さないけど、途中に空が挟まっていてもいいんだ。
違いは大きいと思います。
が、wgrep -u を使うことは、しばらくないと思うので、
僕にとっては、いいじゃん、なんだけど。
m(__)m
いい天気ですねぇ。気分が完全に天気に左右されるお年頃になってます。
- No.11701 -
このTreeへ
コメント元:11700 へ
[リストへもどる]
soft
(11538)
11693:
Re^3: wgrep -u について
投稿者:
としき
2024/11/24(日) 02:16
参照先:http://toshiki.la.coocan.jp/
11688 番 文太 さんへのコメント コメント数 1
朝起きたら市内一斉清掃に参加しなければならぬ。
こんな時間までネットに首を突っ込んでいる暇はないはず。というのは建前。
とりあえず一つだけ。
> >その場合、dcフォルダにダミーファイルを1つ作ってやれば、うまくヒットします。
> >ファイル名は何でもよろし。dummy.xlsでも何でもOK。
> でも、なんでこんなこと知ってるの? ある種の論理的思考でこうなるはず、
> とかあるんですか?
経験者だから。
いや、実はですねぇ。
私がよくやるのは、*.txt なんてファイル指定なんですが、この場合だと、拡張子が
txt のファイルが一つもないと、他にいくつファイルがあっても、例の読み込めない
というメッセージが出てしまうのですよ。
今回の文太さんの例だと、ファイル指定が *.* となっていたから、ではファイルが
1つもなかったんだろうな、と推測した次第。
そんだけ。
- No.11693 -
このTreeへ
コメント元:11688 へ
[リストへもどる]
soft
(11538)
11695:
Re^4: wgrep -u について
投稿者:
文太
2024/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にそんな制限ないもん。
- No.11695 -
このTreeへ
コメント元:11693 へ
[リストへもどる]
pre
(11538)
11703:
Re^5: wgrep -u について
投稿者:
としき
2024/11/24(日) 17:33
参照先:http://toshiki.la.coocan.jp/
11695 番 文太 さんへのコメント
> うちは当番制なので、今年は奥様がやってきました。
一人暮らしだと、そういうわけには行きません。
ただ、同一市内の実家は母と弟が暮らしていて、母が体調不良だから当然弟がやる
かと思ったら誰も出て行かなかったとのこと。いささかあきれる。
> >私がよくやるのは、*.txt なんてファイル指定なんですが、
> abc??.txt という指定では、いつもできてるのに、今日は「*.txt」で
> エラーが出るぞ、という経験があれば、論理的に考えますね。さすが。
私の解釈の問題というか誤解しているのかもしれません。
私の経験では、別のディレクトリだと abc??.txt という指定でも *.txt でも行ける
のに、特定のディレクトリでは同じ指定なのにうまく行かない、なにが違う、という
ところが出発点。そして、あ、このディレクトリはファイル豊富なのに拡張子が txt
のファイルは一つもない、という気付きから数回の実験をおこなって、というような
感じですね。だからこの辺、論理的には考えますが、少なくとも1回は実験を行って、
自分の考えを確かめないと。
何せ、一番信用できないのが自分の考えというやつですから。
- No.11703 -
このTreeへ
コメント元:11695 へ
[リストへもどる]
soft
(11538)
11696:
Re^2: wgrep -u について
投稿者:
文太
2024/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 としき、でした。
- No.11696 -
このTreeへ
コメント元:11686 へ
[リストへもどる]
pre
(11538)
11704:
Re^2: wgrep -u について
投稿者:
konno
2024/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の再帰検索は不安定だなぁと思っていたのですが、そういうことでしたか。
大変有益な情報をありがとうございます。
- No.11704 -
このTreeへ
コメント元:11686 へ
[リストへもどる]
pre
(11538)
11685:
Re: おち
投稿者:
konno
2024/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 で使うにはあまり向いていないと思うので、別の機会に。
- No.11685 -
このTreeへ
コメント元:11679 へ
[リストへもどる]
pre
(11538)
11698:
Re^2: おち
投稿者:
文太
2024/11/24(日) 10:36
11685 番 konno さんへのコメント
konnoさん
なんだか、すごい怒涛になってしまいました。
すみませね。
>このDLLは ZIPの中には無いですね。私は多分 SETUP.EXE から
>落としたのでしょう。
なるほど。そういうパッケージの仕方、みたことあります。
いつか探すかも、、、。
>WILD は GREP で使うにはあまり向いていないと思うので、別の機会に。
はい、まったくその通りだと思います。ygrep.exeで足りると思います。
- No.11698 -
このTreeへ
コメント元:11685 へ
[リストへもどる]
soft
(11538)
11707:
GNU grep 2.5.4 (English)
投稿者:
文太
2024/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
- No.11707 -
このTreeへ
コメント元:11685 へ
[リストへもどる]
soft
(11538)
11708:
32bit Grep (Japanese)
投稿者:
文太
2024/11/25(月) 00:04
11707 番 文太 さんへのコメント コメント数 2
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
と解釈されているのでしょう。
もちろん、かなり意地悪なテストです。こんな結果になるとは思わなかった
のだけど。
- No.11708 -
このTreeへ
コメント元:11707 へ
[リストへもどる]
pre
(11538)
11711:
findstr.exe (32bit Win Grep)
投稿者:
文太
2024/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文字と認識されているみたい。
「*」がうまく機能しなかったのも、このせいだ、きっと。
とても使い勝手が悪そうだ、とは言えるでしょう。
結論:これでよくは、ない。
- No.11711 -
このTreeへ
コメント元:11708 へ
[リストへもどる]
pre
(11538)
11713:
popogrep & findstr @ CMD窓
投稿者:
文太
2024/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な環境に
とどまりたいと思いました。
こんなに苦労することになるとは、夢にも思ってなかった。
- No.11713 -
このTreeへ
コメント元:11711 へ
[リストへもどる]
soft
(11538)
11714:
Re: 32bit Grep (Japanese)
投稿者:
文太
2024/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 で
動かなかったときは、「や、やばいぞ」と強く思いました。
大昔ほど真剣には、暗い気持ちにならなかったのですが。この方面では
もうあまり前を見なくてよい、と思っているので。
- No.11714 -
このTreeへ
コメント元:11708 へ
[リストへもどる]
soft
(11538)
11687:
Re^6: ren grep fgrep
投稿者:
としき
2024/11/24(日) 00:12
参照先:http://toshiki.la.coocan.jp/
11678 番 konno さんへのコメント コメント数 2
> FC BIN で比較すると中身は同じでした。・・・ん? もしかして標準時間の差?
> どうもコピー時にトラブってこうなったように見えますが、わかりません。
う〜ん、8時間の差、というのがよくわかりませんね。
9時間の差、というのはUTCとJSTの解釈ミスで時々見かけますけど。
あと、かなり昔のアメリカ製の圧縮ソフトで、夏時間の解釈を間違って圧縮時だか
解凍時に1時間狂わせる、というのがあったそうですが、最近のソフトでそういう
ものがあるとは思えない。けど、むしろMS純正のソフトでありそうな気がするのは
私の偏見か。
> パスを順に見ていったら、\tc\ の中にありました。(^^;
> C:\TC のディレクトリ
> 1989/05/11 02:01 7,029 GREP.COM
うぉ、これも懐かしいですね。TurboC 2.01だ。
実家に行けば、今でも残っているかも。
- No.11687 -
このTreeへ
コメント元:11678 へ
[リストへもどる]
pre
(11538)
11689:
TCと、時間差
投稿者:
文太
2024/11/24(日) 00:20
11687 番 としき さんへのコメント
konnoさん、としきさん
>うぉ、これも懐かしいですね。TurboC 2.01だ。
TCって? と思ってました。
やっぱり、TurboC なのか。あれ? konnoさん、Cにも興味があった
のですね。興味ぐらいは、かつて持ってましたよん、でしょうか。
- No.11689 -
このTreeへ
コメント元:11687 へ
[リストへもどる]
soft
(11538)
11702:
Re^7: ren grep fgrep
投稿者:
としき
2024/11/24(日) 17:23
参照先:http://toshiki.la.coocan.jp/
11687 番 としき さんへのコメント コメント数 1
> > 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
こんなものあったんだ。たぶん、使った事はない。
- No.11702 -
このTreeへ
コメント元:11687 へ
[リストへもどる]
pre
(11538)
11706:
grep.com from TC 1.5 and 2.01
投稿者:
文太
2024/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
- No.11706 -
このTreeへ
コメント元:11702 へ
[リストへもどる]
pre
(11538)
11709:
Re: grep.com from TC 1.5 and 2.01
投稿者:
としき
2024/11/25(月) 00:27
参照先:http://toshiki.la.coocan.jp/
11706 番 文太 さんへのコメント
> 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時間ですからねぇ。
どこかでタイムスタンプを狂わせる圧縮/解凍ツールを使った可能性が高そうな
結果ですね。
- No.11709 -
このTreeへ
コメント元:11706 へ
[リストへもどる]
pre
(11538)
11676:
そのグレップ、日本語対応してるのでしょうか
投稿者:
文太
2024/11/23(土) 01:28
11666 番 konno さんへのコメント コメント数 1
konno wrote:
--------------------------
私の手持の GREP のZIPが32ギガのUSBメモリの中にありました。
grep-2.5.4-bin.zip
2018/10/06 00:36 451,824 grep-2.5.4-bin.zip
\bin\
2009/02/13 17:19 92,160 egrep.exe
2009/02/13 17:19 54,784 fgrep.exe
2009/02/13 17:19 96,256 grep.exe
--------------------------
grep-2.5.4-bin.zipをぐぐったところ
https://ja.osdn.net/projects/sfnet_gnuwin32/downloads/grep/2.5.4/grep-2.5.4-bin.zip/
で見つかり、grep-2.5.4-bin.zipを展開したら
2024/11/23 01:06 92,160 egrep.exe
2024/11/23 01:06 54,784 fgrep.exe
2024/11/23 01:06 96,256 grep.exe
というものが得られました。タイムスタンプは、まったくあてに
ならないようですが、ファイルサイズはドンピシャです。
が、これ、日本語対応してるのでしょうか。
展開後に、share\locale\ja というのがあり、エラーメッセージを日本語
表示するためのファイルみたいなのがあるみたいでした。
よく分かりませんが、その grep 、日本語対応してますか?
ドキュメントが英語で、それが読めないとなると、素直に日本のベクタに
登録されているものを使ったほうが安全みたいな気がします。
わからんちんの文太ですが。
- No.11676 -
このTreeへ
コメント元:11666 へ
[リストへもどる]
pre
(11538)
11677:
展開後のタイムスタンプ
投稿者:
文太
2024/11/23(土) 09:55
11676 番 文太 さんへのコメント
独り言発言です。
何が話題だったか思い出せませんが、きっと2年くらい前に、アーカイブ
ファイルを展開すると、あるいはファイルをDLすると、その展開日、
あるいはDL日にタイムスタンプが変更されてしまうみたい(Win7あたりから?)
という話がありました。
#10343: Re: win7 bupdate 投稿者: konno 2022/10/18
このあたりが近いかもしれない。
で、昨晩の「grep-2.5.4-bin.zip」を、Win11 右クリック「すべて展開」と
(いわば)プリミティブなLHMeltで試したところ、後者では
タイムプタンプが保持されました。
2009/02/13 09:19 92,160 egrep.exe
2009/02/13 09:19 54,784 fgrep.exe
2009/02/13 09:19 96,256 grep.exe
こんな具合。右クリックが楽なのですが、お仕事まわり以外では、わざわざ
LHMeltを使おうと思います。もちろん関連付けされているので、
ダブルクリックするだけなのですが。
- No.11677 -
このTreeへ
コメント元:11676 へ
[リストへもどる]
pre
(11538)
11671:
文太のグレップ(複数)ほか
投稿者:
文太
2024/11/22(金) 21:07
11662 番 文太 さんへのコメント コメント数 1
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
使い分けているわけでもないです。ここ1週間弱を除けば、1年ぐらい
どれも使っていないような気がします。どれにも、とりわけバグとかあるように
感じたことはありません。気づくのがけっこう大変だとは思いますが。
作者様たちに感謝、感謝です。
ygear.def by とらじにはメニューを仕込んであるので、特定のプロジェクト
の時に、ygrep.exeを集中的に使う。
ふだんは、grep.exe か izgrep.exe (高速)。前後とかの文脈(コンテクスト)
を見るときには、cgrep.exe でしょうか。
プログラムのソースには、メタ文字のたぐいがけっこう入っているときが
あります。こういう場合には、(頻繁ではなかったですが)fgrep.exe のおでまし
となっていたと思います。
純粋な実行ファイルではありませんが、grep.def by tomo も、昔はよく
使いました。^NG と、ちゃんとキーアサインしています。
余談&脱線。先日、「ワイルドカードの展開は誰がする?」という弱い疑問を
持ったとき、MS-DOS Encyclopedia と Undocumented DOS を "wildcard" でグレップ
しました。期待していた解答はなかったのですが、ちらちら関連個所を読んで
いて、以下を思いつきました。
normal: mov ah,4eh ;FINDFIRST
mov dx,offset FILE
mov cx,0
int 21h
FILE db '*.*',0
blt.com (お気に入りツール by Bunta)です。簡易 dir コマンド。
4Eh, int 21h が、ワイルドカードを使ってる。つまり、元はmsdos.sysが
配置したベクターテーブルの先のルーチンがワイルドカードの展開をしている
(Encyclopediaによれば、DOS では、*.* は、????????.???に展開される
らしいのだが)。
ですから、誰が展開する? に対する回答は、【その場合】DOSエミュ
ということになると思います。
が、8.3以上のファイル名を受け付けるためには、、、。
決まったやり方があるのでしょうが、大変そうですねぇ、という感想でした。
因みに、blt.comには、LFNを受け付ける兄貴、bll.comというのもあります。
Windows仕様の長いファイル名を受け付けるやつ。
normal: mov ax,714eh ;FINDFIRST
mov dx,offset FILE
call SET ;set cx, si, di
int 21h
こちらでは、714eh というファンクションになっているようです。
つまり、OSが片づけてくれてるんですね。VTDOSでは、どちらも完全に
動いています。
もちろん、VTDOSは、ときどき落ちるのですが。
- No.11671 -
このTreeへ
コメント元:11662 へ
[リストへもどる]
pre
(11538)
11684:
Re: 文太のグレップ(複数)ほか
投稿者:
としき
2024/11/23(土) 23:36
参照先:http://toshiki.la.coocan.jp/
11671 番 文太 さんへのコメント コメント数 2
> 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は、私は明らかに使ったことがない。入手したことすらないはず。
- No.11684 -
このTreeへ
コメント元:11671 へ
[リストへもどる]
pre
(11538)
11690:
Re^2: 文太のグレップ(複数)ほか
投稿者:
文太
2024/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というのが
あったのではないでしょうか。
- No.11690 -
このTreeへ
コメント元:11684 へ
[リストへもどる]
soft
(11538)
11694:
Re^3: 文太のグレップ(複数)ほか
投稿者:
としき
2024/11/24(日) 02:35
参照先:http://toshiki.la.coocan.jp/
11690 番 文太 さんへのコメント コメント数 1
> 気持ちは分かりますが、正規表現に対応していたら、fgrep ではないような。
あぁ、そうか、そうですよね。そういわれてみれば確かにそうかも。
とりあえず私、正規表現を使わない時はOS純正のfindを使うことが多いもので
ついついあんな発言をしてしまいます。
といいつつ、最近のWindowsにはOS純正でfindstrなんてコマンドもあったりする
から侮れない。いつからあるんだろう。WinNT4には既にあったりして。少なくとも
WinXPには存在している。
> >WGREPはなぜ文太さんが使っていないのか、不思議。
> 最初に、jgrep (日本語対応) とか、cgrep, ygrep, izgrep に出会ったから
なるほど。
速くて多機能なものに最初のころに出会えば、そうなりますよね。
私の場合、ASCII toolsが最初だけど、次はwgrepでした。
アーカイブの中の検索なんて機能はほとんど使ったことがないけど、再帰検索と
各種文字の同一視ができるというのは非常にありがたかった。
速いと評判だったのはizgrepですか。
たぶんこれだと思うのですが、速いと評判だったgrepを評価して、当時のニフティの
数百メガバイトのログファイルを検索してみたけど、検索条件が悪かったのか、
wgrepと大差なかったので使わなかった、ということがあったのは覚えている。
具体的な数字なんか当然覚えていませんが、1分半ぐらいのところで10秒ぐらいの
差だったような。とにかく、全ログ舐めてこの程度の差なら、わざわざ手になじんだ
ものから乗り換えるほどの事はないや、と考えるのに十分な程度の差でした。
- No.11694 -
このTreeへ
コメント元:11690 へ
[リストへもどる]
soft
(11538)
11697:
find, findstr, replace, sort /+36
投稿者:
文太
2024/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 を読んだら、「出力が大きいと差が感じられない
かもしれない」とありました。結果のプリントは膨大な時間がかかるみたい。
これで検索自体の差が帳消しになる、とか。
- No.11697 -
このTreeへ
コメント元:11694 へ
[リストへもどる]
soft
(11538)
11692:
konnoさん、掲示板?
投稿者:
文太
2024/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さん
- No.11692 -
このTreeへ
コメント元:11684 へ
[リストへもどる]
pre
(11538)
11699:
Re: konnoさん、掲示板?
投稿者:
としき
2024/11/24(日) 10:40
参照先:http://toshiki.la.coocan.jp/
11692 番 文太 さんへのコメント コメント数 1
> この掲示板の「あれ」なのでしょうか >konnoさん
あれ、というか「癖」っぽいですね。うん、「ヤマイダレ」のついている漢字だ。
mode=msgviewのときだけ発病する感じ。
allreadとかnewsortの時はきちんと欠落なく表示してくれているから。
そして、行頭が半角「1」は欠落するけど半角「2」なら大丈夫、というのも不思議。
どうすればこうなるんだろう。
- No.11699 -
このTreeへ
コメント元:11692 へ
[リストへもどる]
soft
(11538)
11705:
Re^2: konnoさん、掲示板?
投稿者:
konno
2024/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のときだけ表示が変なのですね。
うちだけなのかな。
確認してみます。
# ヤマイダレハシナナキャナオラナイ富士の山異誰?
- No.11705 -
このTreeへ
コメント元:11699 へ
[リストへもどる]
pre
(11538)
11710:
Re^3: konnoさん、掲示板?
投稿者:
としき
2024/11/25(月) 00:34
参照先:http://toshiki.la.coocan.jp/
11705 番 konno さんへのコメント コメント数 1
> mode=msgviewのときだけ表示が変なのですね。
行頭の半角「1」が欠落する、というのはmode=msgviewのときだけですね。
ただ、今、いろいろと見て回っていたら、konnoさん、ちょうど手を入れている最中
なのかな。mode=allreadのツリー表示が微妙に崩れているところがある。
なんかまた、デグレが発生したかな。
- No.11710 -
このTreeへ
コメント元:11705 へ
[リストへもどる]
soft
(11538)
11712:
Re^4: konnoさん、掲示板?
投稿者:
konno
2024/11/25(月) 15:30
11710 番 としき さんへのコメント
> > mode=msgviewのときだけ表示が変なのですね。
> 行頭の半角「1」が欠落する、というのはmode=msgviewのときだけですね。
ソースを確認したら、変な部分を見つけました。
$v_msg =~ s/
1/\n/g;
これは、
を \n に変換するところだと思いますが、1 が余計に入っている?
$v_msg =~ s/
/\n/g;
1を削除したら正常になりました。これか!
多分ソースを弄っている時にうっかり1を押してしまったのでしょう。
うちのノートPCはテンキー付きなので指が触れやすいのです。
うっかりミスを発見してくれてありがとうございます。
てか、そもそもここでこの変換は必要なのだろうか? <br>を表示させるためかな?
> ただ、今、いろいろと見て回っていたら、konnoさん、ちょうど手を入れている最中
> なのかな。mode=allreadのツリー表示が微妙に崩れているところがある。
> なんかまた、デグレが発生したかな。
げげ、結構崩れていますね。でもツリールーチンは最近弄った記憶が無いのですが。
ルーチンとしてバグが残っているとは思ってましたが、ここまで酷くはなかったような。
見てみます。
追記
¥n は改行になってるし、<br>は表示してないじゃん!
また見直さなくては。(;_;)
- No.11712 -
このTreeへ
コメント元:11710 へ
[リストへもどる]
pre
(11538)
11655:
DOSVAXJ3 (2024/11/18)テスト版
投稿者:
konno
2024/11/18(月) 18:00
11538 番 konno さんへのコメント
DOSVAXJ3 (2024/11/18)テスト版のメールをいただきました。
内容は
-----------------------------------------------------------
さらに修正して C# 等で作られた .NET コンソールプログラムでも入力
可能となっています。環境変数の設定は noinput から novc に変更しま
した。
https://www.nanshiki.co.jp/test/dosboxj_test6.zip
-----------------------------------------------------------
ということでさらに多くのコマンドに対応されたようです。
ありがとうございます。
また、GAWKの件でも
>> gawk "BEGIN{print mktime("""2004 09 28 20 57 00""")} >utime
>> gawk: ^ syntax error
> > の前に " が必要です。
とアドバイスをいただきました。これはVZマクロで
=utime
*m
89 ^\ "" #E "gawk $"BEGIN{print mktime($"$"$"2004 09 28 20 57 00$"$"$")} >utime" #m
*
こうなっていて、VTDOSではこれで動いていました。
89 ^\ "" #E "gawk $"BEGIN{print mktime($"$"$"2004 09 28 20 57 00$"$"$")}$" >utime" #m
こう修正したら、VTDOSでも DOSVAXJ3 でもキチンと動きました。ありがとうございます。
入力系=対話型とすると、CMD.EXE とかでしょうか。
DOSVAXJ3 で dir *grep* とすると、カレントの全ファイルが表示されます。
CMD
dir *grep*
とすると、grep を含むファイルだけ表示されます。
exit で戻ると VZのコンソールに結果が入っていますね。これはありがたいです。
これは MS-DOS Playerや VTDOSでも出来ましたが、VZコンソールに結果は入りませんでした。
- No.11655 -
このTreeへ
コメント元:11538 へ
[リストへもどる]
pre