gpt4 book ai didi

regex - 用 awk 替换字段中最后一次出现的字符

转载 作者:行者123 更新时间:2023-11-29 09:13:03 25 4
gpt4 key购买 nike

我正在尝试用 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但无法使解决方案适应我的问题。

我对此还很陌生,所以任何帮助都将不胜感激!

最佳答案

对于 gensub() 使用 GNU awk:

$ awk 'BEGIN{FS=OFS=","} {$3=gensub(/(.*) /,"\\1,","",$3)}1' file
John,Doe,Abc fgh,123,Abc
John,Doe,Ijk-nop,45D,Def
John,Doe,Qr s Uvw,6,Ghi

获取 Arnold Robbins 的 Effective Awk Programming 一书。

顺便说一句,问题写得很好!

关于regex - 用 awk 替换字段中最后一次出现的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28649114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com