Eng*_*ng7 19 bash awk text-processing
如果我有以下两个日期:
2015-09-12,2015-08-13
Run Code Online (Sandbox Code Playgroud)
我需要获取它们之间的天数,我将使用以下代码:
awk -F'[-,]' '{print 360*($4-$1)+30*($5-$2)+($6-$3)}'
Run Code Online (Sandbox Code Playgroud)
此代码的输出将是,-29而实际上差异是29
Sté*_*las 35
您可以awk像这样定义函数 :
awk -F'[-,]' '
function abs(v) {return v < 0 ? -v : v}
{print abs(360*($4-$1)+30*($5-$2)+($6-$3))}'
Run Code Online (Sandbox Code Playgroud)
jim*_*mij 18
这种情况的常见技巧是使用平方的平方根:
awk -F'[-,]' '{print sqrt((360*($4-$1)+30*($5-$2)+($6-$3))^2)}'
Run Code Online (Sandbox Code Playgroud)
其他方式:
awk -F'[-,]' '{d=360*($4-$1)+30*($5-$2)+($6-$3);print (d>0)?d:-d}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49525 次 |
| 最近记录: |