使用 awk 做减法
using awk for subtraction
此处类似 post:
下面很好,但现在我需要从字段 $4 中减去 20,如果它小于 20,如果它大于 20,字段 5 可以设置为 0。
31590,Foo,70,3.5
28327,Bar,291,14.55
25155,Baz,583,29.15
24179,Food,694,34.7
28670,Spaz,67,3.35
22190,bawk,4431,132.93
29584,alfred,142,7.1
27698,brian,379,18.95
24372,peter,22,1.1
25064,weinberger,8,.04
我有一些类似的工作,但现在有一些错误。
{print [=11=], -(>20?:20)}
因为字段 $4 可能小于 20,我不确定上面的内容是否真的有效,因为我真的想要 20 - $4 而不是 $4 - 20。
这给我 $4-20: {print [=12=], -(<20?20:)}
但如果 $4 小于 20,我需要 20-4。如果 $4>20 字段 $5 为 0。
我觉得你需要的是
{print [=10=], 20 - ( < 20 ? : 20)}
或者让它更直接
{print [=11=], ( < 20 ? 20 - : 0)}
如果 $4 小于 20,则此 returns 20 - $4 作为第五个字段。
如果$4大于等于20,这个returns0作为第五个字段。
此处类似 post:
下面很好,但现在我需要从字段 $4 中减去 20,如果它小于 20,如果它大于 20,字段 5 可以设置为 0。
31590,Foo,70,3.5
28327,Bar,291,14.55
25155,Baz,583,29.15
24179,Food,694,34.7
28670,Spaz,67,3.35
22190,bawk,4431,132.93
29584,alfred,142,7.1
27698,brian,379,18.95
24372,peter,22,1.1
25064,weinberger,8,.04
我有一些类似的工作,但现在有一些错误。
{print [=11=], -(>20?:20)}
因为字段 $4 可能小于 20,我不确定上面的内容是否真的有效,因为我真的想要 20 - $4 而不是 $4 - 20。
这给我 $4-20: {print [=12=], -(<20?20:)}
但如果 $4 小于 20,我需要 20-4。如果 $4>20 字段 $5 为 0。
我觉得你需要的是
{print [=10=], 20 - ( < 20 ? : 20)}
或者让它更直接
{print [=11=], ( < 20 ? 20 - : 0)}
如果 $4 小于 20,则此 returns 20 - $4 作为第五个字段。
如果$4大于等于20,这个returns0作为第五个字段。