【发布时间】:2012-11-30 19:57:57
【问题描述】:
我有以下脚本:
#!/bin/csh
echo "jones 2143 78 84 77" >! student-marks
echo "Gondrol 2243 88 94 87" >> student-marks
awk '{
if ($3 >=35 && $4 >= 35 && $5 >= 35)
print $0,"=>","Pass";
else
print $0,"=>","Fail";
}' student-marks
我直接从 URL 复制的 http://www.thegeekstuff.com/2010/02/awk-conditional-statements/
作为一个例子来学习如何在 awk 中使用 if else 逻辑。不幸的是,我不断收到错误 Unmatched ' 有什么建议吗?
【问题讨论】:
-
请看下面的答案。请注意,您可以使您的
awk更加尴尬:awk '$3 >=35 && $4 >= 35 && $5 >= 35 { print $0,"=>","Pass"; next } { print $0,"=>","Fail" }' file。默认有罪。 -
您可以使用三元运算符将其变成 awk 单行:
awk '{print $0, "=>", ($3 >=35 && $4 >= 35 && $5 >= 35) ? "Pass" : "Fail"}' student-marks