2016-07-29 64 views
1

我有一个bash脚本,它将从原始日志文件中提取的一些数据写入csv格式的文件中。现在我想在这个数据集上应用libreoffice calc公式。我的想法是直接从bash脚本(使用';'[分号]而不是','[逗号]分隔数据以避免破坏公式')在csv文件中写入“raw”calc公式。所以,我有这样的(例如)的脚本:将libreoffice calc公式脚本编译为csv

#!/bin/bash 
for ((i=1; i<=5; i++)) 
do 
    echo "$i; $((i+1)); =SUM(A$i, B$i)" >> sum.csv 
done 

执行这个脚本给出了这样的sum.csv文件:

1; 2; =SUM(A1, B1) 
2; 3; =SUM(A2, B2) 
3; 4; =SUM(A3, B3) 
4; 5; =SUM(A4, B4) 
5; 6; =SUM(A5, B5) 

当我与钙打开它,它给人以分隔每个值预期的结果在单细胞中。但问题是公式没有被评估。即使手动编辑单元格也不会触发评估。唯一的工作是复制没有'='的公式并手动编写'=',然后粘贴公式。

我试过使用INDIRECT()但它没有帮助。

有没有办法强制公式评估?还是有其他方法可以做我想做的事(不学习新语言......)?

回答

2

它应该在删除等号前的前导空格后工作。第三个字段当前的内容为=SUM(A1, B1)(注意领先空间)。如果内容以=而不是=代替,则LO将识别该公式:

1;2;=SUM(A1, B1) 
2;3;=SUM(A2, B2) 
3;4;=SUM(A3, B3) 
4;5;=SUM(A4, B4) 
5;6;=SUM(A5, B5)