awk退出ACTION路径并直接转到END部分



我使用的是awk脚本,它的框架是简单的

 awk '
 BEGIN {
     Variable declaration
 }
 {
    ACTION PART
 }
 END
 {
 }' FILE A

文件A是一个巨大的文件。所以我不想遍历整个文件,所以我想做的是,我试图在ACTION PART中保留一些检查,如果检查成功,那么我需要跳过读取文件的其余部分,直接转到END部分。

我的问题是如何根据条件将脚本从ACTION PART重定向到END PART。。我正在寻找某种命令,比如"break"in for loop。你们能分享你们的想法吗。非常感谢。

exit命令将执行您想要的操作。

man页面:

同样END块被合并,并在所有输入耗尽时执行(或当执行退出语句时)。

在终止当前块时使用"exit",但END仍被处理。参见下面的示例。

$ cat test.input
hello
world
one
$ awk 'BEGIN { print "Start-up"} {print "Read:", $1; if ($1 == "world") {exit}} END {print "Phase-out"}' test.input 
Start-up
W: hello
W: world
Phase-out

最新更新