29

Bash 将箭头指向“else”并用挑衅的抱怨语气说“语法错误”。

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

为什么?

4

2 回答 2

38

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

awk '{if($3 != 0) {a = ($3/$4); print $0, a;} else if($3==0) print $0, "-" }' file > out
于 2012-05-24T14:40:34.810 回答
4

试试代码

awk '{s=($3==0)?"-":$3/$4; print s}'
于 2013-02-18T06:57:11.903 回答