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

时间:2012-05-24 14:33:28

标签: if-statement awk syntax

Bash将箭头指向“else”并用挑衅的呜呜声说出“语法错误”。

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

为什么?

2 个答案:

答案 0 :(得分:27)

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

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

答案 1 :(得分:2)

尝试代码

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