gpt4 book ai didi

regex - 从逗号分隔文件中删除多余的逗号

转载 作者:行者123 更新时间:2023-12-04 23:52:43 30 4
gpt4 key购买 nike

我有一个包含 12 列的逗号分隔文件。

第 5 和第 6 列(第 5 和第 6 列中的文本相同,但它们之间可能有额外的逗号)存在问题,其中包含额外的逗号。

 2011,123456,1234567,12345678,Hey There,How are you,Hey There,How are you,882864309037,ABC   ABCD,LABACD,1.00000000,80.2500000,One Two

所以在上面的例子中,“Hey There,How are you”不应该有逗号。

我需要在第 5 列和第 6 列中删除多余的逗号。

最佳答案

如果您总是想删除第 5 个逗号,请尝试

sed 's/,//5' input.txt

但你是说,它 五月有额外的逗号。你必须提供一个逻辑来判断是否有多余的逗号。

如果你知道逗号的数量,你可以使用 .这已被证明是一个很好的练习,我相信其他人会想出一个更优雅的解决方案,但我还是会分享我的:
awk -f script.awk input.txt

使用 script.awk:
BEGIN{
FS=","
}
NF<=12{
print $0
}
NF>12{
for (i=1; i<=4; i++) printf $i FS
for (j=0; j<2; j++){
for (i=0; i<=(NF-12)/2; i++){
printf $(i+5)
if (i<(NF-12)/2) printf "_"
else printf FS
}
}
for (i=NF-5; i<=NF; i++) printf $i FS
printf "n"
}

首先我们将字段分隔符设置为 , .如果我们数小于或等于 12字段,一切都很好,我们只需打印整行。如果超过 12 个字段,我们首先打印前 4 个字段(再次使用字段分隔符),然后我们打印两次字段 5(和字段 6),而不是打印 , , 我们与 _ 交换.最后我们打印剩余的字段。

正如我所说,可能有一个更优雅的解决方案。我想知道其他人会怎么想。

关于regex - 从逗号分隔文件中删除多余的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20198574/

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