用于查找2个文件的百分比变化的Shell脚本

时间:2018-04-02 13:58:27

标签: bash shell

我有2个文件:

a.txt

0.513603
0.513141
0.513141
0.513046
0.513263
0.512889
0.512889
0.512097
0.51112
0.511863

b.txt

0.5132405
0.51319025
0.51311625
0.51305325
0.512903125
0.512516625
0.5121205
0.5118095
0.511543
0.511598125

我想知道从两个文件到相应行的%更改。我无法想到如何使用Shell脚本实现它。每两个文件中将生成每5分钟一次的数据,但每次都不会有两个文件中的记录相同。

示例:

(0.513603 - 0.5132405)/100  

3 个答案:

答案 0 :(得分:0)

使用下面的代码。但唯一的事情是你将在/ tmp / b文件中没有数据结束。在我的情况下它是好的,因为/ tmp / b将在5分钟后再次生成。

while IFS='' read -r line || [[ -n "$line" ]]; do

line2=`head -1 /tmp/b`
sed -i '1d' /tmp/b

   //  do processing between line and line2 whatever you want

done < /tmp/a

答案 1 :(得分:0)

IIUC,这就是你要找的东西

a=($(<a.txt))
b=($(<b.txt))

for i in for i in "${!a[@]}"
do
    printf '100\n%f\n%f\n-\n*\np\n' ${a[i]} ${b[i]} | dc
done

将2个文件读入数组,然后使用dc进行浮点运算。

答案 2 :(得分:0)

e=1将两个文件放在一起,使用paste将这两个值更改为正确的计算,然后让sed计算

bc