Linux 命令行编辑.CSV文件

Linux 命令行编辑.CSV文件,linux,bash,csv,sed,scripting,Linux,Bash,Csv,Sed,Scripting,我有一个.CSV文件,其中的行具有相同的ID 下面是一个.CSV文件示例: Alias,Date,Volume,Type,Type2,MSI ID1,20170418,0.516006112,CHART,GAS,10-10-10-1 ID2,20170418,4.03900528,CHART,GAS,10-10-10-2 ID2,20170418,0.399999887,METER,OIL,10-10-10-2 ID2,20170418,0,METER,CONDY,10-10-10-2 ID3,

我有一个.CSV文件,其中的行具有相同的ID

下面是一个.CSV文件示例:

Alias,Date,Volume,Type,Type2,MSI
ID1,20170418,0.516006112,CHART,GAS,10-10-10-1
ID2,20170418,4.03900528,CHART,GAS,10-10-10-2
ID2,20170418,0.399999887,METER,OIL,10-10-10-2
ID2,20170418,0,METER,CONDY,10-10-10-2
ID3,20170418,0.399999887,CHART,GAS,10-10-10-3
ID4,20170418,6.599591255,CHART,GAS,10-10-10-4
ID5,20170418,4.6501894,CHART,GAS,10-10-10-5
ID6,20170418,1.831178546,CHART,GAS,10-10-10-6
ID6,20170418,0.190000013,METER,OIL,10-10-10-6
ID6,20170418,0,METER,CONDY,10-10-10-6
我需要创建一个Linux脚本来编辑这个.CSV文件,如下所示:

Alias,Date,Volume,Type,Type2,MSI,Volume Oil, Volume Condy
ID1,20170418,0.516006112,CHART,GAS,10-10-10-1,,
ID2,20170418,4.03900528,CHART,GAS,10-10-10-2,0.399999887,0
ID3,20170418,0.399999887,CHART,GAS,10-10-10-3,,
ID4,20170418,6.599591255,CHART,GAS,10-10-10-4,,
ID5,20170418,4.6501894,CHART,GAS,10-10-10-5,,
ID6,20170418,1.831178546,CHART,GAS,10-10-10-6,0.190000013,0
如果别名字段重复

并且行中有计量油:将体积移动到前一行中的“体积油”,删除此行

并且行具有仪表CONDY:将卷移动到前一行的“volume CONDY”,删除此行

awk方法(假设只有三条记录具有相同的
ID
):

输出:

Alias,Date,Volume,Type,Type2,MSI,Volume Oil,Volume Condy
ID1,20170418,0.516006112,CHART,GAS,10-10-10-1,,
ID2,20170418,4.03900528,CHART,GAS,10-10-10-2,0.399999887,0
ID3,20170418,0.399999887,CHART,GAS,10-10-10-3,,
ID4,20170418,6.599591255,CHART,GAS,10-10-10-4,,
ID5,20170418,4.6501894,CHART,GAS,10-10-10-5,,
ID6,20170418,1.831178546,CHART,GAS,10-10-10-6,0.190000013,0

您自己尝试了什么?使用SED,我可以添加标题(第一行),这看起来很好,只是它忽略了米-康迪值0。@TrevorWelsh,抱歉,修复。现在好了,非常感谢!现在我只需要弄清楚这一切是如何运作的:)
Alias,Date,Volume,Type,Type2,MSI,Volume Oil,Volume Condy
ID1,20170418,0.516006112,CHART,GAS,10-10-10-1,,
ID2,20170418,4.03900528,CHART,GAS,10-10-10-2,0.399999887,0
ID3,20170418,0.399999887,CHART,GAS,10-10-10-3,,
ID4,20170418,6.599591255,CHART,GAS,10-10-10-4,,
ID5,20170418,4.6501894,CHART,GAS,10-10-10-5,,
ID6,20170418,1.831178546,CHART,GAS,10-10-10-6,0.190000013,0