【发布时间】:2015-04-23 07:41:29
【问题描述】:
我正在尝试用 awk 替换字段中最后出现的字符。给定的是这样一个文件:
John,Doe,Abc fgh 123,Abc
John,Doe,Ijk-nop 45D,Def
John,Doe,Qr s Uvw 6,Ghi
我想用逗号“,”替换最后一个空格“”,基本上将字段分成两个。结果应该是这样的:
John,Doe,Abc fgh,123,Abc
John,Doe,Ijk-nop,45D,Def
John,Doe,Qr s Uvw,6,Ghi
我尝试创建一个变量,其中包含字段中出现的空格数
{var1=gsub(/ /,"",$3)}
然后整合进去
{var2=gensub(/ /,",",var1,$4); print var2}
但是 gensub 中的 how-argument 不允许除数字和 G/g 之外的任何字符。
我找到了一个类似的线程here,但无法根据我的问题调整解决方案。
我对此很陌生,因此我们将不胜感激!
【问题讨论】:
-
awk 程序:
{n=gsub(/ /," ",$3);newv=n?gensub(/ /,",",n,$3):newv;print newv;}应该可以正常工作。是什么让你相信事实并非如此?