【问题标题】:I want to find difference between 2 numbers stored in a file using shell script我想使用 shell 脚本查找存储在文件中的 2 个数字之间的差异
【发布时间】:2018-03-27 02:24:59
【问题描述】:

以下是文件内容。我想找出第一场每一行之间的区别。

0.607401  # Tue Mar 27 04:30:01 IST 2018
0.607401  # Tue Mar 27 04:35:02 IST 2018
0.606325  # Tue Mar 27 04:40:02 IST 2018
0.606223  # Tue Mar 27 04:45:01 IST 2018
0.606167  # Tue Mar 27 04:50:02 IST 2018
0.605716  # Tue Mar 27 04:55:01 IST 2018
0.605716  # Tue Mar 27 05:00:01 IST 2018
0.607064  # Tue Mar 27 05:05:01 IST 2018

输出:-

0
-0.001076
-0.000102
.019944
..
..
.001348

代码:

awk '{s=$0;getline;print s-$0;next}' a.txt

但是这并没有按预期工作...... 你能帮帮我吗?

【问题讨论】:

  • 请展示您的尝试
  • awk '{s=$0;getline;print s-$0;next}' a.txt this doesn;t work as expected

标签: linux bash shell awk sed


【解决方案1】:

您可以使用以下awk代码:

$ awk 'NR==1{save=$1;next}NR>1{printf "%.6f\n",($1-save);save=$1}' file                                                                        
0.000000
-0.001076
-0.000102
-0.000056
-0.000451
0.000000
0.001348

并通过修改printf 来根据需要格式化输出。 你目前的做法会跳过一些行!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    相关资源
    最近更新 更多