作者: Bunta
日時: 2006/11/14(20:35)
Bruce.さん

 遅れました。申し訳ありません。また「ご教示」の語法についてもありがとう
ございました。完全に間違って記憶していました。教えて下さったこと、ほんと
うに感謝しています。

 さて、コマンドライン解釈に問題がないこと、他の grep, sed(cgrep を除く)
がそもそも \s をつけ付けていないことなどを確認しました。混乱が混乱を呼ん
でおりました。

 なのですが、修正版においても、以下が読み切れません。僕の理解がいけない
のだろうとも強く思っておりますが、もし以下でツールの動作自体がおかしい場
合と思われる場合には追試をお願いできますでしょうか。

 もし動作におかしい点がなければ、僕のオペレーションかあるいは理解に関し
て、間違っている点をご教示願えないでしょうか。


C:\>Type test.txt
 半角
	タブ
 全角
aaa

C:\>Yagrep -P "\s" test.txt
 半角
	タブ
 全角
aaa
 ※改行にヒットしてるんだ。全部OK -oでも確認できた。

C:\>Onigsed -n -R -e"s/\s/_/gp" test.txt
_半角			OK
_タブ			OK
 ※パターンスペースに入るときに改行が取られてるから?(1)

C:\>Ssed -n -R -e"s/\s/_/gp" test.txt  (super sed)
_半角			OK
_タブ			OK
 ※(1)の仮説は正しいのだろう。

C:\>Yagrep -P "\W" test.txt
 半角			OK
	タブ		OK
 全角			OK
aaa			?	(改行にヒット? -oから、たぶんそうだ)(2)

C:\>Onigsed -R -n -e"s/\W/_/gp" test.txt
_半角			OK
_タブ			OK
 ※どうして? 「aaa」は置換されなくてよい。しかし「 全角」は?(3)
  グローバルなのだから、「半」も「角」もword character以外になるはず…。

C:\>Yagrep -P "\w" test.txt
 半角			?
	タブ		?
 全角			?
aaa			OK
 ※ここはやっぱり変だろう?(4)

C:\>Onigsed -n -R "/\w/p" test.txt
 半角			?
	タブ		?
 全角			?
aaa			OK
 ※なぜだ? どうやら文太の解釈が間違っているらしい(4)

C:\>Yagrep -P "\n" test.txt
 半角
	タブ
 全角
aaa
 ※改行だね。

C:\>Onigsed -n -R "/\n/p" test.txt
 半角
	タブ
 全角
aaa
 ※がーん。パターンスペースに入るときに改行が取られることはないのか?!

C:\>Ssed -n -R "/\n/p" test.txt

 ※出力ゼロ。こっちが正しいことを祈る…。

文太