作者: Koichi Yamamoto
日時: 2004/4/25(18:55)
こんにちは、山本です。

"HFC01730@... (水羽信男)"さんは書きました:
> どこへアップすればよいのか悩んだのですが、
> 一応、ここへ書き込みます。

下記の問題はTcl/Tkのバグが原因ですので、
TStcltkへの投稿で正解です。

> Bruce.版のgawkをtkon上で使うと次のようなエ
> ラーメッセージが出ます。windows2000のコマン
> ドライン上では問題ないので、わざわざ「こと
> あげ」することもないかと思ったのですが、一
> 応、ご報告しておきます。
> 
> % gawk --ctype=UTF8 "{gsub(/[ ]+/, \"-\");\
>   print}" keguan_py.txt
> gawk: cmd. line:1: \{gsub(/+/, "-");print}
> gawk: cmd. line:1: ^ backslash not last cha\
>       racter on line
> 
> * 実際は【\】で改行になっている訳ではありませ
>  ん。

Tcl/Tkのバージョン8.4.6で、次のようなバグ修正が行われています。

2004-02-25 (bug fix)[554068] stopped broken [exec] quoting of {

この修正はTclのexecコマンドに関するものですが、wishなどで
gawkコマンドを上記のように実行するときはexecコマンド経由で
実行されますから、このバグが原因になっていると思います。

幸い、私の手元に8.4.3と8.4.6がインストールされているPCが
ありましたので、それぞれに以下のようなコマンドを実行して
みました。

cmd /c echo "{aaa} {bbb}"

8.4.3では "\{aaa} \{bbb}" という結果になりますが、
8.4.6では "{aaa} {bbb}" という結果になりました。

以上から、Tcl/Tk8.4.6をインストールすれば、
{記号の前におかしな\記号が付くことは無くなります。

--
Koichi Yamamoto, 
http://homepage3.nifty.com/yamakox/