awkについて語るスレ $2at TECH
awkについて語るスレ $2 - 暇つぶし2ch702:デフォルトの名無しさん
12/07/22 11:41:46.83 .net
>>693
691、ちょっと訂正。無駄にキュー使う分、元スクリプトから劣化してた。
>    p+=RSTART-1;
>-   enQ(substr(A[i],p,RLENGTH));
>+   if(hitTop+1<i){
>+    A[++hitTop]=substr(A[i],p,RLENGTH)
>+   }else{
>+    enQ(substr(A[i],p,RLENGTH));
>+   }
>    p+=RLENGTH;
あと、良く考えたら出力先を別にするなら、そもそもキュー不要。

バグってのは687で数値上限云々と書いたとおり、
”C[0]+=1”がawkの整数の精度誤差なし演算可能上限を考慮していないだけ。
どのawkも多分そうだと思うけど、手元の環境下での実行結果↓
C:\>gawk --version
GNU Awk 3.1.7(windows special Nov 24 2009)
C:\>gawk "BEGIN{print 9007199254740990+1}" nul
9007199254740991
C:\>gawk "BEGIN{print 9007199254740991+1}" nul
9007199254740992
C:\>gawk "BEGIN{print 9007199254740992+1}" nul
9007199254740992

実際は(hddやメモリが先に死ぬので)
一行でこれだけ正規表現がhitする事は事実上無いし、
仮に発生しても検索結果が潰れるだけで、気付かない筈。



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