web-dev-qa-db-fra.com

Awk if else issues

Bash pointe une flèche vers "else" et dit "erreur de syntaxe" sur un ton gémissant provocateur.

awk '{if($3 != 0) a = ($3/$4) print $0, a; else if($3==0) print $0, "-" }' file > out

Pourquoi?

19
AWE

Vous avez oublié les accolades autour du bloc if et un point-virgule entre les instructions du bloc.

awk '{if($3 != 0) {a = ($3/$4); print $0, a;} else if($3==0) print $0, "-" }' file > out
28
breiti

Essayez le code

awk '{s=($3==0)?"-":$3/$4; print s}'
2
Jotne