Bash从前一个元素填充空数组元素

时间:2013-03-15 10:42:36

标签: arrays bash join null

是否有一种简单的(即非循环)方式在bash中获取数组并使用前一个元素值填充任何null元素。

用例是采用一组异步时间序列数据点,外部连接它们作为公共列的时间。然后,对于每个数据列,找到任何空值,并用该系列中前一个数据点的值填充该点。

因此两个系列

T1,1.234  
T2,2.345  
T3,3.456  
T6,6.789  

T1,1.111  
T2,2.222  
T5,5.555  
T7,7.777  

将加入制作

T1,1.234,1.111  
T2,2.345,2.222  
T3,3.456,2.222  
T5,3.456,5.555  
T6,6.789,5.555  
T7,6.789,7.777  

1 个答案:

答案 0 :(得分:0)

如果您将上述评论中的for循环体更改为

{ if (!x[i]) x[i] = x[i-1]; print x[i] }

,它也适用于连续的空值。

如果AWK脚本对于您的用例来说太慢,并且因为您提到了R,为什么不使用R?