[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sub() function do'nt alter string length in awk 3.1.5
From: |
Aharon Robbins |
Subject: |
Re: sub() function do'nt alter string length in awk 3.1.5 |
Date: |
Sun, 04 Jun 2006 20:48:23 +0300 |
Hi. I think I may have replied to this, so apologies if this is a repeat.
First, this problem will go away if you use the "C" locale:
export LC_ALL=C
I have this fixed in my current code base. If it's an urgen problem I can
try to generate a patch for you. Otherwise, it'll be fixed in the next release.
Thanks!
Arnold
> Date: Sun, 28 May 2006 11:20:58 +0200
> From: Frantisek Hanzlik <address@hidden>
> Subject: sub() function do'nt alter string length in awk 3.1.5
> To: address@hidden
>
> Hello,
> I not know when it is my mistake or gawk bug - in simple example below
> I delete some chars from string variable, and after this string is
> modified, but its length is unchanged.
>
> awk 'BEGIN{A="1234567890abcdef";
> for (i=1;i<6;i++){print length(A),"A=" A ".";sub("....","",A)}
> }'
> 16 A=1234567890abcdef.
> 16 A=567890abcdef.
> 16 A=90abcdef.
> 16 A=cdef.
> 16 A=.
>
> When I use gensub() instead of sub(), result is as I expected:
>
> awk 'BEGIN{A="1234567890abcdef";
> for (i=1;i<6;i++){print length(A),"A=" A ".";A=gensub("....","",1,A)}
> }'
> 16 A=1234567890abcdef.
> 12 A=567890abcdef.
> 8 A=90abcdef.
> 4 A=cdef.
> 0 A=.
>
> OS/GAWK versions:
> - GNU/Linux kernel 2.6.16-1.2122_FC5 #1 i686, Fedora Core 5 distro
> - glibc-2.4-8
> - GNU Awk 3.1.5
>
> Yours sincerely
> Frantisek Hanzlֳk
>
> == Lucnֳ 502 Linux/Unix, Novell, Internet Tel: +420-373729699 ==
> == 33209 Stenovice e-mail:address@hidden Fax: +420-373729699 ==
> == Czech Republic http://hanzlici.cz/ GSM: +420-604117319 ==
- Re: sub() function do'nt alter string length in awk 3.1.5,
Aharon Robbins <=