我有一个文件,其中一部分看起来像这样:
Date,Open,High
2018-08-29,1624.0,1628.8
2018-08-28,1658.85,1669.55
2018-08-27,1649.0,1655.45
我打算做的是通过减去第3列来创建一个新列
从上一行的第2列
,基本上
等等。
这样最终输出将如下所示:
Date,Open,High,gener
2018-08-29,1624.0,1628.8
2018-08-28,1658.85,1669.55,75.55
2018-08-27,1649.0,1655.45,-3.4
我试过的不是很聪明,比如:
lines=$(cat test.csv|wc-l)
lines=$((lines-2))
for i in $(seq $lines);do
l=$((i+2))
sed -n "$lp" test.csv|awk -F, '{print $2 $3}' >> /dump/files.test
#and then using values from this saved file to make changes within this for loop, using tail etc.
这是非常缓慢,我不是很好与awk。我试图看手册和每一个相关的问题,但找不到任何具体做这样的事情。
this question that is quite similar
arrays
在awk,但这也不是很成功,在我的特殊情况。
一个简单的awk解决方案,我将非常感谢伴随着一个基本的解释。