Я никогда не знал о команде lscpu.
В справочной странице указано, что он основан только на первом процессоре. «Ставка» может «измениться».
кажется, что lscpu находится в процессе изменения - более новые имеют параметр -V (--version), в моей системе ubuntu 15.04 он говорит:
leisner@t7400:/tmp$ lscpu --version
lscpu from util-linux 2.25.2
Model name: Intel(R) Xeon(R) CPU E5430 @ 2.66GHz
Stepping: 6
CPU MHz: 2667.000
CPU max MHz: 2667.0000
CPU min MHz: 2000.0000
В другой системе просто говорит:
CPU MHz: 800.000
Но в cpufreq-info там написано:
current CPU frequency is 800 MHz.
cpufreq stats: 2.40 GHz:0.02%, 2.40 GHz:0.00%, 2.30 GHz:0.00%, 2.20 GHz:0.00%, 2.10 GHz:0.00%, 1.90 GHz:0.00%, 1.80 GHz:0.00%, 1.70 GHz:0.04%, 1.60 GHz:0.00%, 1.50 GHz:0.00%, 1.40 GHz:0.00%, 1.30 GHz:0.01%, 1.10 GHz:0.00%, 1000 MHz:0.00%, 900 MHz:0.01%, 800 MHz:99.91% (5851)
(это 8-ядерный i7).
Как насчет
awk 'NR == 1 {DELTA = $0} {$0 = ($0 - DELTA) * FAC; print}' FAC=627.509 file
Кажется, это работает:
$ awk -v c=627.509 'NR==1 { b=$1 } { printf( "%0.6f\n", ( $1-b ) * c ) }' file.dat
0.000000
-27.586551
-40.559672
-38.839042
-41.630830
-34.159707
-50.683902
-49.767111
-42.710773
-43.985243
-49.809154
-53.644489
-46.232981
-49.268242