Macos 在CSV的N位置添加一个字符';使用mac终端的特定列

Macos 在CSV的N位置添加一个字符';使用mac终端的特定列,macos,sed,terminal,Macos,Sed,Terminal,我有一个关于选举结果的csv PARTY1,00000003,01546,0020,PARTY2,00000001,02315,0022,PARTY3,00000000,00000,0006, 政党名称后的第二列是投票率(01546…02315…)。 是否有方法使用Mac终端在特定列的第3个和第4rt个字符之间添加一个点(.),以获得此输出: PARTY1,00000003,015.46,0020,PARTY2,00000001,023.15,0022,PARTY3,00000000,000.

我有一个关于选举结果的csv

PARTY1,00000003,01546,0020,PARTY2,00000001,02315,0022,PARTY3,00000000,00000,0006,
政党名称后的第二列是投票率(01546…02315…)。
是否有方法使用Mac终端在特定列的第3个和第4rt个字符之间添加一个点(.),以获得此输出:

PARTY1,00000003,015.46,0020,PARTY2,00000001,023.15,0022,PARTY3,00000000,000.00,0006,
所有百分比列将有5位数字。该表前后有更多列

我在当地一家报纸工作,做印刷版面。我没有太多的编码经验。只是一些基本的HTML和JS

我们将从选举当局收到几份csv(每个省一份)

我知道如何使用电子表格应用程序(excel、libre office)管理这些数据。但如果可能的话,我想避免它们,因为我看到我通常做的一些操作(合并、删除列、添加标题)可以通过终端更快更容易地完成

我不熟悉终端命令。我在这里和那里找到了一些非常有用的命令(cat用于将多个区域中的csv串联在一起,cut用于提取我需要的列),但没有关于插入字符的内容(除非它们位于行的开头)


我的输出数据将作为交互式地图发送到Datawrapper或Carto,并可能发送到Qgis,以便与shp合并并生成报纸的pdf。

awk'BEGIN{FS=OFS=“,”}{for(i=3;我会的。Stack Overflow是一个面向专业和热情的程序员的问答页面。请在问题中添加您自己的代码。您至少要展示您自己为解决此问题所做的研究量。您应该将
00000
转换成什么?
00.00
0
?我已经添加了我的测试。我知道如何使用电子表格应用程序(excel、libre office)执行此操作。但如果可能的话,我希望避免使用这些测试。我不熟悉终端命令,并且发现了一些非常有用的测试(cat用于将多个区域中的csv连接在一起,剪切用于提取所需的列)。最终输出将是一个地图,并带有工具提示,显示如下内容“第1方:15.46%/第3方:0.00%等"在我看来,转换只是在一个5个字符的字符串中插入一个字符。您将要格式化的数据发送到哪里?是发送到另一个文件还是直接发送到应用程序?请更新您的Q,以包含上面注释中包含的重要信息。Q的正确形式是1。小样本放置(检查),2.该示例输入的所需输出(未找到)3.试图解决问题时发出的代码/错误消息(未找到)。4.关于问题的其他想法。(检查(ish))。基本上,您需要人们可以剪切和粘贴到其终端的代码/数据。鉴于您显示的示例数据,*nix实用程序在行/选项卡分隔的数据上工作得更好,而不是CSV。(每条记录的行,每个字段之间的选项卡)。。。。
awk 'BEGIN{FS=OFS=","} {for(i=3; i<=NF; i=i+4) $i=sprintf("%.2f",$i/100)}1' file
PARTY1,00000003,15.46,0020,PARTY2,00000001,23.15,0022,PARTY3,00000000,0.00,0006,
awk 'BEGIN{FS=OFS=","} {for(i=3; i<=NF; i=i+4) $i=substr($i,1,3)"."substr($i,4,2)}1' file
PARTY1,00000003,015.46,0020,PARTY2,00000001,023.15,0022,PARTY3,00000000,000.00,0006,