gpt4 book ai didi

regex - 必要时使用正则表达式向 csv 文件添加逗号

转载 作者:行者123 更新时间:2023-12-01 23:12:33 25 4
gpt4 key购买 nike

我有一个如下所示的 csv 文件:

entity_name,data_field_name,type
Unit,id
Track,id,LONG

第二行少了一个逗号。我想知道是否可能有一些正则表达式或类似 awk 的工具,以便在这些行中缺少逗号的情况下将逗号附加到行尾?

更新

我知道要求有点模糊。可能有几种替代方法可以缩小要求,例如:

  1. 标题行应定义对整个文件有效的列数(和逗号)。脚本应首先读取标题行并找出正确的列数。
  2. 列数可以作为参数传递给脚本。
  3. 列数可以硬编码到脚本中。

一开始我没有缩小要求,因为我对其中任何一个都满意。当然,第一种选择是最好的,但我不确定这是否容易实现。

感谢所有精彩的回答和评论。下一次,我将明确说明可接受的替代要求。

最佳答案

您可以使用此 awk 命令根据标题行中的列数用空单元格值填充从第二行开始的所有行,以避免硬编码列数:

awk 'BEGIN{FS=OFS=","} NR==1{nc=NF} NF{$nc=$nc} 1' file

entity_name,data_field_name,type
Unit,id,
Track,id,LONG

较早的解决方案:

awk 'BEGIN{FS=OFS=","} NR==1{nc=NF} {printf "%s", $0;
for (i=NF+1; i<=nc; i++) printf "%s", OFS; print ""}' file

关于regex - 必要时使用正则表达式向 csv 文件添加逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36882354/

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