web-dev-qa-db-ja.com

他に問題があればAwk

Bashは「else」を指す矢印を指し、挑発的な泣き声で「構文エラー」と言います。

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

どうして?

19
AWE

Ifブロックの前後の中括弧、およびブロック内のステートメント間のセミコロンを忘れました。

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

コードを試してください

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