awk条件语句有一个奇怪的地方:
当运行awk 'if-else if-else‘时,在每个条件之后只有一个操作,它工作得很好,如下:
awk 'BEGIN {a=30; \
if (a==10) print "a = 10"; \
else if (a == 20) print "a = 20"; \
else print "a = 30"}'输出:a = 30
但是,在运行awk 'if-else if-else‘时,如果在'else if’后面有多个操作(正确地用大括号括起来),则会出现语法错误:
awk 'BEGIN {a=30; \
if (a==10) print "a = 10"; \
else if (a == 20) {print "a = 20"; print "b = 20"}; \
else print "a = 30"}'输出:
awk: cmd. line:4: else print "a = 30"}
awk: cmd. line:4: ^ syntax error有没有人知道这是一个awk问题,本质上不允许在这种情况下执行多个操作,或者这只是我的语法错误可以纠正?
附注:我查看了awk 'if else‘语法错误的所有相关帖子,但没有一个帖子解决了这个问题。
发布于 2021-10-27 13:40:12
删除了右括号后第三行末尾的分号。
awk 'BEGIN {a=30; \
if (a==10) print "a = 10"; \
else if (a == 20) {print "a = 20"; print "b = 20"} \
else print "a = 30"}'输出:a = 30
https://stackoverflow.com/questions/69484195
复制相似问题