如果发生其他问题,请回复

AWE*_*AWE 21 syntax awk if-statement

Bash将箭头指向"其他",并在挑衅的呜呜声中说出"语法错误".

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

为什么?

bre*_*iti 31

您忘记了if块周围的大括号,以及块中语句之间的分号.

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

  • @AWE:添加一个测试来处理`$ 4`为0. (2认同)

小智 5

尝试一下代码

awk '{s=($3==0)?"-":$3/$4; print s}'
Run Code Online (Sandbox Code Playgroud)