Похожего поста здесь: awk if statement with simple mathс использованием AWK для вычитания
Ниже велик, но теперь мне нужно вычесть 20 из поля $ 4, если это меньше, чем 20, и если его больше, чем 20, поле пять может быть установлено в 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 $0, $4-($4>20?$4:20)}
Поскольку поле $ 4 может быть меньше, чем 20, я не уверен, что выше будет на самом деле вок, как я действительно хочу 20 - $ 4 не $ 4 - 20.
Это дает мне $ 4-20 : {print $0, $4-($4<20?20:$4)}
, но мне нужно 20-4, если $ 4 меньше, чем 20. Если $ 4> 20 поле $ 5 0.
В вашем файле всего 3 поля – bkmoney
Вы хотите 20 - $ 4 или $ 4 - 20, ваше сообщение, кажется, противоречит самому себе – bkmoney
Это дает мне 4-20 долларов: '{print $ 0, $ 4 - ($ 4 <20? 20: $ 4)} ', но мне нужно 20-4, если $ 4 меньше 20. Если $ 4> 20 поле $ 5 равно 0. –