【deb系】Ubuntu Linux 38【ディストリ】at LINUX
【deb系】Ubuntu Linux 38【ディストリ】 - 暇つぶし2ch55:login:Penguin
10/01/12 19:49:33 JtT8jcQo
愚痴。

Ubuntu9.10にして、9.04時代に作ったスクリプトを動かしたらまともに動かないんでやんの。
調べたらnawk内でmatchを使ったあとのRSTART(検索した文字の開始位置)と
RLENGTH(検索文字の長さ)がバイト単位になってた。

あれ? 前は文字数単位じゃなかったかと思いつつ、gawkだと文字数単位で扱ってくれるらしいので
gawkをインストールしたら、nawkの挙動も文字数単位になりやがった(怒

例を挙げると
echo "あいうえお" | nawk ' { match($0,"お"); print "rstart=",RSTART,"rlength=",RLENGTH; } '
これでgawkがないと rstart= 13 rlength= 3 なのがgawk導入後には rstart= 5 rlength= 1 になる。

gawkがあるかどうかで、標準で入ってるnawkの挙動も変わるなんて……
ここで思いだしたのが、9.04時代には試験的にgawkもインストールしていたということ。
スクリプトを作ったときは素のnawkの動作でなかったのか。
いや待て、素のnawkでないだと?

試しにnawkでは使えないはずのgensub関数を使ってみたら、nawkのなかで動いた。
gawkをいれたら、nawkを使ったつもりでも内部的にはgawkが動いてるのか。
ふざけんな。gawkがあろうとなかろうとnawkはnawkで独立させとけよ!
半日無駄になったじゃねーか。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch