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`
这种写法对吗?
不对的话,怎样修改?谢谢。 展开
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`
这种写法对吗?
不对的话,怎样修改?谢谢。 展开
1个回答
展开全部
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"}'
{
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)给我一行,我做下调试参考。
我写语句的能力也一般,需要调试调试。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询