たかつです。

\ によるエスケープとかって、shell とか、そこから呼び出した perl/awk/sed 
とか、いろんな所で処理されるし、' や " のクオートも剥がれていきますから、
油断すると何が起こってるのかわからなくなりますね。

私は、1 liner の時は、できるだけ \ を使わないようにします。

> | sed s/\\.//g`

だったら、

> | tr -d . `

にするとか。


それとは方向が違いますが、この処理は、全部awkにまかせて、

$CC -v 2>&1 | awk '/gcc version/{gsub("\\.","",$3);print "GCC"$3}'

とすることもできますね。sed なら

$CC -v 2>&1 | sed -e '/gcc version/!d' -e 's/^.*gcc version \([0-9\.]*\).*$/GCC\1/' -e 's/\.//g'

かな。

で、この sed 版を、csh 系のシェルから直接実行しようとした場合には、! が
シェルのヒストリ処理に取られてしまうんですよね。ヒストリに置換されると
エラー表示が意味不明で一瞬、何が起きてるのかすら分からなくなったりして…


PROJECT TEAM DoGA 高津正道                            taka2@doga.jp
                                                   TBD00456@nifty.ne.jp
                     PROJECT TEAM DoGAのホームページ → http://doga.jp/
7月7日(金) 今日のマーフィーの法則     [ゴアードの公理]
会議は、議事録を得て、時間を失うイベントだ。