完整教程:第7.9节:awk语言 nextfile 语句

news/2025/9/21 13:32:50/文章来源:https://www.cnblogs.com/yfceshi/p/19103569

1 第7.9节:awk语言 nextfile 语句

nextfile 语句与 next 语句类似。不过,next 是放弃当前记录的处理,而 nextfile 是指示 awk 停止处理当前数据文件。

执行 nextfile 语句后,FILENAME 会更新为命令行中下一个数据文件的名称,FNR 重置为 1,处理从程序的第一条规则重新开始。如果 nextfile 语句导致输入到达末尾,那么所有 END 规则中的代码会执行。例外情况是在 END 规则内执行 nextfile 语句,此时程序会立即停止。

当有很多数据文件要处理,但无需处理每个文件的每条记录时,nextfile 语句很有用。如果没有 nextfile,要切换到下一个数据文件,程序得继续扫描不需要的记录。nextfile 语句能更高效地实现这一点。

gawk 中,执行 nextfile 还会引发其他操作:如果当前不在 END 规则中,会执行所有 ENDFILE 规则;ARGIND 会递增;如果 ARGIND 尚未引入,还会执行所有 BEGINFILE 规则。

gawk 还有一个特殊的使用场景:在 BEGINFILE 规则内使用 nextfile 可跳过会导致 gawk 因致命错误退出的文件。这种特殊情况下,不会执行 ENDFILE 规则。

虽然看似 close(FILENAME) 能实现与 nextfile 相同的功能,但实际并非如此。close() 是用于关闭通过重定向打开的文件、管道和协进程,与 awk 处理 ARGV 中列出文件的主要流程无关。

注意:多年来,nextfile 是一种常见的扩展功能。2012 年 9 月,它被接纳并纳入 POSIX 标准。

当前版本的 BWK awkmawk 也支持 nextfile 。不过,它们不允许在函数体内使用 nextfile 语句。gawk 允许;函数体内的 nextfile 会读取下一个文件的第一条记录,并从程序的第一条规则开始处理该记录,和其他 nextfile 语句的行为一样。


作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/908782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker - Create my own Ubuntu image and run it on Windows

Docker - Create my own Ubuntu image and run it on Windows1. Pull the ubuntu:24.04 image.2. Set shared directory so that I can operate on files in both Windows and the container: 3. Create the Dockerfi…

一类特征方程在数列递推中的应用

以下内容摘自《组合数学》(第五版)P86【例 2-41】。求 \(S_n=1^3+2^3+\cdots+n^3\)。\(\Delta S_n=S_{n+1}-S_n=(n+1)^3\) 是 \(n\) 的 \(3\) 次多项式,因此 \(S_n\) 满足递推关系: \[S_n-5S_{n-1}+10S_{n-2}-10S_…

深入解析:GC 算法的种类及垃圾收集器

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

rust跨文件调用代码

cargo new my_testcd my_tescode .目录如下我们假设我们想要开发一个学生管理系统,于是添加模块"student_find" 添加mod.rs student.rs在mod.rs里编写pub mod student; 在student.rs里编写接口体/函数即可…

详细介绍:导师推荐毕设:基于SpringBoot+Vue的中小企业进销存管理系统设计

详细介绍:导师推荐毕设:基于SpringBoot+Vue的中小企业进销存管理系统设计pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-famil…

HarmonyOS之UIContext - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

NIO重构UDP收发模块

本文大纲如下:1、写作背景 2、基本的UDP包收发用法 3、采用NIO方式处理UDP一、背景 本篇内容,主要来源是在对公司代码重构。公司一个项目是采用UDP方式通信,在UDP的不可靠基础上,封装成可靠的通信协议。其本质是UD…

深入解析:C语言:猜数字游戏

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:深度学习从入门到精通 - AutoML与神经网络搜索(NAS):自动化模型设计未来

深入解析:深度学习从入门到精通 - AutoML与神经网络搜索(NAS):自动化模型设计未来2025-09-21 12:39 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; ove…

题解:SP6562 PRUBALL - Esferas

盲猜你们都是从 CSP-S 2025 初赛 来的…… 题目描述 给你 \(n\) 颗蛋和一个 \(m\) 层高的楼,定义蛋的硬度 \(k\) 为:在 \(<k\) 的楼层扔蛋不会碎,在 \(\ge k\) 的楼层扔蛋会碎。求在最坏情况下,最少需要扔多少次…

个人项目-文本查重

软工第二次作业之个人项目——论文查重 项目信息项目信息 详情课程 班级链接作业要求 作业要求项目目标 实现一个论文查重程序,规范软件开发流程,熟悉Github进行源代码管理和学习软件测试GitHub仓库 https://github.…

深入解析:[数据结构] LinkedList

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

US$34 MB ESL Emulator

MB ESL EmulatorTop 4 Reasons To Get MB ESL Emulator1. This device works with Mercedes EIS.2. It emulates both of old (W202, 208, 210) and new (203, 208, 211, 639).3. ESL types functioning.You can use t…

采用python test测试http接口

采用python test测试http接口pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

CF2147 Codeforces Global Round 29 (Div. 1 + Div. 2) 解题报告

A 题挂机半天,B 题挂机半天,D 题脑子犯蠢,3t寄了。省流 A 题挂机半天,B 题挂机半天,D 题脑子犯蠢,3t寄了。9.20 内含剧透,请vp后再来。 赛前 白天刚打完失败的 ccpc 网络赛,不过心态已经调整的非常平和,然后抱…

US$29 Vag R250 VW Audi Dashboard Programmer Free Shipping

R250 VW Audi Dashboard Programmer You can use R250 to program Siemens/VDO new cryptography system Description:This product looks like a small box that needs to be connected to a PC running Win98/Me/XP…

数字图像基础知识

前言 数字图像(Digital Image),又称数码图像或数位图像,以数字形式存储于电子设备中。 有多种方式可以生成数字图像。 一种是物理收集,例如使用数码相机、扫描仪、卫星遥感器、红外/热成像仪、核磁共振 MRI 等设备…

详细介绍:农业XR数字融合工作站,赋能农业专业实践学习

详细介绍:农业XR数字融合工作站,赋能农业专业实践学习pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

标题:分享一个值得推荐的免费云服务——阿贝云

最近在搭建个人网站时,无意中发现了一个提供免费虚拟主机和免费云服务器的平台——阿贝云。经过一段时间的使用,我真的被它的稳定性和易用性打动了! 阿贝云不仅提供了完全免费的云服务器资源,还支持多种常见环境,…

PPT2Note使用说明

PPT2Note使用说明 简介 PPT2Note是一个应用于教学的使用工具,可以自动抓取在教学大屏上打开的PPT文件并发送至绑定的用户笔记中。解决了PPT翻页太快漏截图问题。