7

我正在使用一个 awk 脚本,它的框架很简单

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

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

我的问题是如何根据条件将脚本从 ACTION PART 重定向到 END Part。我正在寻找某种命令,例如 for 循环中的“break”。你们能不能分享你的想法。谢谢你。

4

2 回答 2

13

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

man页面

类似地,所有的 END 块都被合并,并在所有输入用尽时(或执行退出语句时)执行。

于 2012-07-18T10:39:59.480 回答
4

在终止当前块时使用“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
于 2012-07-18T10:42:54.267 回答