In article <vtgtkr$3br8e$
[email protected]>,
Ed Morton <
[email protected]> wrote:
...
data = "R=\"R=r1,R=r2\",R=r2,R=r3,E=e"
nf = patsplit(data, arr, /[RE]=([^,]*|"([^"]|"")*")/)
delete arr
for ( i in arr ) {
sub(/[^=]+=/, "", arr[i])
}
This can't be right, since if the sequence:
delete arr
for (i in arr) ...
can't possibly do anything. I.e., the for statement will be a no-op, since
the array is empty at that point.
or any awk:
data = "R=\"R=r1,R=r2\",R=r2,R=r3,E=e"
nf = 0
delete arr
while ( match(data, /[RE]=([^,]*|"([^"]|"")*")/, a) ) {
arr[++nf] = substr(data, RSTART+2, RLENGTH-2)
data = substr(data, RSTART+RLENGTH)
}
I believe "delete arr" (without an index, hence removing the entire array)
is an "extension". I can't quite quote chapter and verse, but I note that
"man mawk" explicitly mentions that mawk supports this syntax, thereby
implying that it isn't "standard". Of course, gawk supports it as well.
So, if by "any awk", you mean "strictly standard", then, well, you can see where I am going with this.
--
"Only a genius could lose a billion dollars running a casino."
"You know what they say: the house always loses."
"When life gives you lemons, don't pay taxes."
"Grab 'em by the p***y!"
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)