2016-07-29 8 views
1

生のログファイルから抽出したデータをcsv形式のファイルに書き込むbashスクリプトがあります。次に、このデータセットにlibreofficeの計算式を適用したいと思います。私の考えは、bashスクリプト(式を壊さないようにデータを区切るために '、' [カンマ]の代わりに ';' [セミコロン]を使用)からcsvファイルに直接 "生の"計算式を書き込むことです。だから私は、(例えば)そのようなスクリプトいる:libreofficeの計算式を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) 

私はCALCでそれを開くと、それが分離された各値と期待される結果が得られます。

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

このスクリプトを実行するには、このsum.csvファイルを提供します単一細胞で。しかし問題は、数式が評価されないことです。手動でセルを編集しても、評価は行われません。有効な唯一の方法は、 '='を除いた数式をコピーし、手動で '='を書いて、数式を貼り付けることです。

INDIRECT()を使ってみましたが、役に立たなかったです。

強制的に式を評価する方法はありますか?あるいは、私が(新しい言語を学ぶことなく)何か他の方法でやっているのですか?

答えて

2

等号の前の先頭のスペースを削除した後に動作するはずです。 3番目のフィールドには現在、内容が=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)