以下是文件内容。我想找出第一个字段的每一行之间的差异。

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代码:

$ 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来根据需要格式化输出。 你目前所做的方式会跳过一些行!


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!