Shell awk命令嵌套if...elif... else写法

linuxshell中awk命令中执行命令里要包括if...elif...else,怎样写才能不报出语法错误?a=`/bin/awk-F,'BEGIN{i=0;count... linux shell中 awk命令中执行命令里要包括if...elif... else,怎样写才能不报出语法错误?
a=`/bin/awk -F, 'BEGIN{i=0;count=0}{ gsub(/"/,"",$1);gsub(/"/,"",$35); if("2"==$1){i+=1;count+=1};else if("8"==$1 -a $35==0) {print "0"};else{if(count!=0){print i;i=0;count=0}}}END {if(count!=0)print i}'b.csv`
这种写法对吗?
不对的话,怎样修改?谢谢。
展开
 我来答
百度网友f6630ec58
推荐于2016-08-27 · TA获得超过368个赞
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:239万
展开全部
awk '
{
if ($1==1)
print "A"
else if ($1==2)
print "B"
else
print "C"
}'
#命名为1.sh

执行方法:echo "1" | sh 1.sh

写成一行:
echo "3" | awk '{if ($1==1) print "A"; else if ($1==2) print "B"; else print "C"}'
追问
再问题描述里,上述写法可以吗?不正确的话怎样修改?
追答
我看不太明白你的意思。
你的$1,$35字段中有【/"/】,要将它替换为【""】吗?
然后的if是什么意思?
如果第1个字段为2,统计i和count的值?
如果第1个字段为8,并且第35个字段为0,打印$0?
如果以上条件皆不成立,且count不为0,打印i?
我没有懂你的逻辑和你要测试什么。
以上的内容,你要赋值给a?

逻辑上我不太懂你的要求。上面 if(... -a ...) 如果是与的意思,用&&代替
如果有必要,你描述清楚你的需求,再将输入(b.csv)给我一行,我做下调试参考。
我写语句的能力也一般,需要调试调试。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式