【发布时间】:2023-03-13 09:04:02
【问题描述】:
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' 语法错误的所有相关帖子,但没有一个解决这个问题。
【问题讨论】:
-
它以
awk 'BEGIN {a=30; \ if (a==10) print "a = 10"; \ else if (a == 20) {print "a = 20"; print "b = 20"} \ else print "a = 30"}'工作。你是对的,它与多个操作无关!我什至没有意识到应该删除“else if”和“else”之间的分号......我只是删除了所有不必要的分号。 -
在单引号字符串中不需要任何续行。
-
删除大括号后第三行末尾的分号 (
;)
标签: awk conditional-statements