减去行';CSV中的s

减去行';CSV中的s,csv,Csv,…我需要修改几个CSV,如下所示 这就是我所拥有的: 2012-08-13 00:15:15; 768.548 2012-08-13 00:30:15; 768.625 2012-08-13 00:45:15; 768.667 2012-08-13 01:00:15; 768.729 2012-08-13 01:15:15; 768.785 2012-08-13 01:30:15; 768.827 但我需要的分析是: 2012-08-13 00:15:15; xxx 2012-08-13 00

…我需要修改几个CSV,如下所示

这就是我所拥有的:

2012-08-13 00:15:15; 768.548
2012-08-13 00:30:15; 768.625
2012-08-13 00:45:15; 768.667
2012-08-13 01:00:15; 768.729
2012-08-13 01:15:15; 768.785
2012-08-13 01:30:15; 768.827
但我需要的分析是:

2012-08-13 00:15:15; xxx
2012-08-13 00:30:15; 0.077
2012-08-13 00:45:15; 0.042
2012-08-13 01:00:15; 0.062
2012-08-13 01:15:15; 0.056
2012-08-13 01:30:15; 0.042
我需要做的是从上面的行中减去实际的行

我做了一些简单的shell脚本,计算这些文件的总和,但从来没有做过这么复杂的事情

还有一个额外的挑战:第一行/值需要减去前一天在另一个CSV中的值


希望你能帮忙

来点awk脚本怎么样

awk -F';' 'NR==1 {print $1 "; xxx"}; NR > 1 {print $1 "; " $2 - x} {x=$2}' < your_file.csv
然后将上面的代码段修改为

awk -F';' 'NR==1 {print $1 "; " $2 - '$(get_last_value PREVIOUS)'}; NR > 1 {print $1 "; " $2 - x} {x=$2}' THIS_FILE

然后,您需要做的就是为每个调用获取
PREVIOUS
THIS\u文件的组合。还要注意的是,第一个文件必须使用上面未删减的代码段进行处理(因为没有以前的值)。

这不是真正的CSV,是吗?它是分号分隔的吗?它是一个真正的CSV。。。我需要的例子中有一个错误,分隔符不是逗号而是点!第三次读的时候我把你的问题答对了。。。是的,它是分号分隔的!第一个工作和预期的一样,thx到目前为止!遗憾的是,第二个特别部分没有。我被这个_文件卡住了,即使我把它改成:“awk-F”NR==1{print$1”;“$2-'$(get_last_value$2)};NR>1{print$1”;“$2-x}{x=$2}'<$1'是否
获取最后一个值
独立工作?如果是这样,那么它一定是shell中的替换问题,是否有任何错误消息?
awk -F';' 'NR==1 {print $1 "; " $2 - '$(get_last_value PREVIOUS)'}; NR > 1 {print $1 "; " $2 - x} {x=$2}' THIS_FILE