GNU awk、FPAT 和复制 FS 的麻烦
GNU awk, FPAT and trouble with a duplicating FS
我有一个file
:
$ cat file
1,,"3.1,3.2",4,5
并且由于引号,我使用 FPAT = "([^,]*)|(\"[^\"]+\")")
而不是 FS=","
。我正在尝试用另一个值替换一个字段,比方说 </code>:</p>
<pre><code>$ gawk 'BEGIN{FPAT="([^,]*)|(\"[^\"]+\")"; OFS=","}{="new"; print}' file
1,,"3.1,3.2",new,,5
$ # right here ^
但我在替换字段后得到了重复的 ,
(OFS
)。当修改除最后一个字段或空字段以外的任何字段时,它会被复制。
你们看到了吗?还是只有我需要眼镜 8| ?我正在使用 GNU Awk 4.1.3。
编辑:
哈,一定是老bug了。 4.1.1 重复逗号但 4.1.4 没有。
显然这是 4.1.4 版之前的 GNU awk 中的错误。
我有一个file
:
$ cat file
1,,"3.1,3.2",4,5
并且由于引号,我使用 FPAT = "([^,]*)|(\"[^\"]+\")")
而不是 FS=","
。我正在尝试用另一个值替换一个字段,比方说 </code>:</p>
<pre><code>$ gawk 'BEGIN{FPAT="([^,]*)|(\"[^\"]+\")"; OFS=","}{="new"; print}' file
1,,"3.1,3.2",new,,5
$ # right here ^
但我在替换字段后得到了重复的 ,
(OFS
)。当修改除最后一个字段或空字段以外的任何字段时,它会被复制。
你们看到了吗?还是只有我需要眼镜 8| ?我正在使用 GNU Awk 4.1.3。
编辑:
哈,一定是老bug了。 4.1.1 重复逗号但 4.1.4 没有。
显然这是 4.1.4 版之前的 GNU awk 中的错误。