Awk, если другие проблемы Bash указывает стрелку на "else" и говорит "синтаксическая ошибка" в провокационном тоном. awk '{if($3 != 0) a = ($3/$4) print $0, a; else if($3==0) print $0, "-" }' file > out Почему? Ответ 1 Вы забыли скобки вокруг блока if и точку с запятой между операторами в блоке. awk '{if($3 != 0) {a = ($3/$4); print $0, a;} else if($3==0) print $0, "-" }' file > out Ответ 2 Попробуйте код awk '{s=($3==0)?"-":$3/$4; print s}'
Ответ 1 Вы забыли скобки вокруг блока if и точку с запятой между операторами в блоке. awk '{if($3 != 0) {a = ($3/$4); print $0, a;} else if($3==0) print $0, "-" }' file > out