我有一个awk脚本,该脚本检查许多可能的模式,为每种模式做一些事情。我想做一些事情,以防所有模式都不匹配。即是这样的:
/pattern 1/ {action 1}
/pattern 2/ {action 2}
...
/pattern n/ {action n}
DEFAULT {default action}
当然,“ DEFAULT”行不是awk语法,我想知道是否存在这样的语法(就像在许多编程语言中通常在swtich / case语句中一样)。
当然,我总是可以在每个动作之后添加一个“下一个”命令,但是如果我有很多动作,这将很乏味,更重要的是,它阻止了我将行与两个或多个模式匹配。
您可以使用求反运算符反转匹配,!
例如:
!/pattern 1|pattern 2|pattern/{default action}
但这真令人讨厌n>2
。另外,您可以使用一个标志:
{f=0}
/pattern 1/ {action 1;f=1}
/pattern 2/ {action 2;f=1}
...
/pattern n/ {action n;f=1}
f==0{default action}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句