如果我不在AWK的END块中写'if',为什么会出现语法错误?

阿比纳什破折号

这些天,我正在学习AWK进行文本处理。但是我对AWK语法非常困惑。我在Wikipedia上读到,语法遵循以下格式:

(conditions) {actions}

我以为我可以在BEGIN和END块中遵循相同的语法。但是运行以下脚本时出现语法错误。

awk 'BEGIN{}
(1 == 1) {print "hello";}
END{
(1==1) {print "ended"}}' $1

但是,如果我在END块中进行了一些更改,并在条件之前添加了“ if”,则它运行得很好。

awk 'BEGIN{}
(1 == 1) {print "hello";}
END{
if (1==1) {print "ended"}}' $1

为什么必须在END块中写“ if”,而在普通块中则不需要?

斯蒂芬·基特

AWK程序是一系列规则,也可能是功能。规则定义为一种模式(conditions)以您的格式),后跟一个动作两者都是可选的。

BEGIN并且END特殊的模式

因此在

BEGIN {}
(1 == 1) { print "hello"; }
END { if (1 == 1) { print "ended" } }

模式是BEGIN(1 == 1)(不需要括号),和END

模式(或没有模式以匹配所有内容)之后的花括号内的块是动作您不能一个块中编写这样的模式,每个块都由引入它的模式来控制。必须将动作内的条件指定为if语句(或其他条件语句while等)的一部分。

上面的动作是{}(空动作){ print "hello"; }{ if (1 == 1) { print "ended" } }

由组成的块会{ (1 == 1) { print "ended" } }导致语法错误,因为(1 == 1)在此处是一条语句,并且必须以某种方式将其与随后的语句分开;{ 1 == 1; { print "ended" } }将是有效的,但不会达到您想要的效果-1 == 1将被评估,然后分别评估{ print "ended" }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Access 2013:为什么会出现此语法错误?

来自分类Dev

为什么我总是在bash脚本中出现语法错误

来自分类Dev

为什么我在python中收到SQL语法错误

来自分类Dev

为什么会出现语法错误,出现意外的“}”,并期望带有范围的keyword_end?

来自分类Dev

为什么我在PHP中收到语法错误?

来自分类Dev

无法弄清楚为什么R中的sqldf出现“ from”附近的语法错误

来自分类Dev

为什么会出现语法错误:缺少';' 在“ *”之前

来自分类Dev

为什么我生成的Flex / Bison解析器即使在规则中添加了语法,也会出现语法错误?

来自分类Dev

当我尝试将变量放入Xpath时,为什么每次都会出现语法错误

来自分类Dev

为什么使用exec()会出现语法错误?

来自分类Dev

如果我不在AWK的END块中写'if',为什么会出现语法错误?

来自分类Dev

每次我运行rails命令时都会出现语法错误

来自分类Dev

为什么在user_controller中的参数允许操作上出现Rails语法错误?

来自分类Dev

为什么会出现语法错误,意外出现“}”,并期望带有范围的keyword_end?

来自分类Dev

为什么会出现“ INSERT INTO语句中的语法错误”?

来自分类Dev

为什么会出现错误:语法错误,意外的“ in_array”?我试图找出变量是否在数组中

来自分类Dev

为什么我的哈希始终出现语法错误?

来自分类Dev

如果在控制台中运行此语法,为什么会出现语法错误?{} === {}

来自分类Dev

当我尝试打印包含带有冒号的键的嵌套哈希时,为什么会出现语法错误?

来自分类Dev

破折号:当我的脚本甚至不包含反引号时,为什么会出现错误“语法错误:EOF在反引号中”?

来自分类Dev

为什么不在本地环境中引发语法错误?

来自分类Dev

为什么在此示例代码中没有出现语法错误?

来自分类Dev

如果语法错误隐藏了我其余的代码,则会出现恼人的提示

来自分类Dev

为什么我的脚本中出现此错误?awk: script.awk:19: “ 语法错误

来自分类Dev

为什么重启后会出现语法错误?

来自分类Dev

为什么我的函数中的数组参数出现语法错误?

来自分类Dev

我的 IF 语句出现语法错误,不知道为什么?

来自分类Dev

你能告诉我为什么我的命令会出现错误消息无效语法吗

来自分类Dev

为什么我在 LAG() 函数中出现语法错误?

Related 相关文章

  1. 1

    Access 2013:为什么会出现此语法错误?

  2. 2

    为什么我总是在bash脚本中出现语法错误

  3. 3

    为什么我在python中收到SQL语法错误

  4. 4

    为什么会出现语法错误,出现意外的“}”,并期望带有范围的keyword_end?

  5. 5

    为什么我在PHP中收到语法错误?

  6. 6

    无法弄清楚为什么R中的sqldf出现“ from”附近的语法错误

  7. 7

    为什么会出现语法错误:缺少';' 在“ *”之前

  8. 8

    为什么我生成的Flex / Bison解析器即使在规则中添加了语法,也会出现语法错误?

  9. 9

    当我尝试将变量放入Xpath时,为什么每次都会出现语法错误

  10. 10

    为什么使用exec()会出现语法错误?

  11. 11

    如果我不在AWK的END块中写'if',为什么会出现语法错误?

  12. 12

    每次我运行rails命令时都会出现语法错误

  13. 13

    为什么在user_controller中的参数允许操作上出现Rails语法错误?

  14. 14

    为什么会出现语法错误,意外出现“}”,并期望带有范围的keyword_end?

  15. 15

    为什么会出现“ INSERT INTO语句中的语法错误”?

  16. 16

    为什么会出现错误:语法错误,意外的“ in_array”?我试图找出变量是否在数组中

  17. 17

    为什么我的哈希始终出现语法错误?

  18. 18

    如果在控制台中运行此语法,为什么会出现语法错误?{} === {}

  19. 19

    当我尝试打印包含带有冒号的键的嵌套哈希时,为什么会出现语法错误?

  20. 20

    破折号:当我的脚本甚至不包含反引号时,为什么会出现错误“语法错误:EOF在反引号中”?

  21. 21

    为什么不在本地环境中引发语法错误?

  22. 22

    为什么在此示例代码中没有出现语法错误?

  23. 23

    如果语法错误隐藏了我其余的代码,则会出现恼人的提示

  24. 24

    为什么我的脚本中出现此错误?awk: script.awk:19: “ 语法错误

  25. 25

    为什么重启后会出现语法错误?

  26. 26

    为什么我的函数中的数组参数出现语法错误?

  27. 27

    我的 IF 语句出现语法错误,不知道为什么?

  28. 28

    你能告诉我为什么我的命令会出现错误消息无效语法吗

  29. 29

    为什么我在 LAG() 函数中出现语法错误?

热门标签

归档