Linux| Awk 中“next”命令奇用

简介

本文介绍了在Linux中使用Awk的next命令来跳过剩余的模式和表达式,读取下一行输入的方法。

next命令

在 Awk 系列教程中,本文要讲解如何使用 next 命令。这个命令能让 Awk 跳过所有你已经设置的其他模式和表达式,直接读取下一行数据。

使用 next 命令可以避免执行那些我认为在命令执行过程中会浪费时间的步骤。

为了更好地理解其工作原理,本文以一个名为 food_list.txt 的文件为例,文件内容如下:

想象一下执行这样一个命令:它会在每一行的末尾加上 (*) 符号,这样做是为了标出那些数量不超过 20 的食品项目。

具体来说,上面的命令是这样执行的:

  • 首先,它会检查每一行的第四个数据(即数量)是否不超过 20。如果符合这个条件,这条记录就会被打印出来,并且在行尾加上 (*) 符号,这一步骤通过表达式 $4 <= 20 来实现。
  • 接下来,命令会判断每一行的第四个数据是否大于 20,如果是的话,这条记录也会被打印出来,这一步是通过另一个表达式 $4 > 20 来完成的。

但这里存在一个问题:在执行第一个表达式、通过 { printf "%s\t%s\n", $0,"**" ; } 打印并标记本文想要的行之后,程序还会去检查第二个表达式,这实际上是在浪费时间。

既然使用第一个表达式已经打印并标记了相关行,那么就没必要再去执行第二个表达式 $4 > 20 了。

要解决这个问题,本文可以使用 next 命令,操作如下:

在通过 4 <= 20 { printf "%s\t%s\n", 0,"*" ; next ; } 这条命令打印了一个输入行之后,接下来的 next 命令将确保程序跳过 4 > 20 { print 0 ;} 这个条件判断,直接进入下一行的处理,避免了无谓的时间浪费在检查数量是否超过 20 上。

next 命令对于提高命令的执行效率至关重要,当需要时,它可以显著加快脚本的运行速度。

本文由mdnice多平台发布

相关推荐
大模型教程13 小时前
谷歌万字长文解密:从原型到生产,构建可靠AI Agents的全栈技术指南
程序员·llm·agent
大模型教程14 小时前
搞懂 LangChain RAG:检索、召回原理及 docid 的关键意义
程序员·langchain·llm
纯爱掌门人15 小时前
我把前端踩坑经验总结成28条“涨薪秘籍”,老板夸同事赞,新手照着做准没错
前端·程序员·代码规范
AI大模型15 小时前
一文看懂 AI Agent 全栈架构:从运行环境到大模型基座的系统化落地指南
程序员·llm·agent
AI大模型16 小时前
别再死磕 Chain 了!想做复杂的 Agent,你必须得上 LangGraph
程序员·langchain·llm
SimonKing19 小时前
继老乡鸡菜谱之后,真正的AI菜谱来了,告别今天吃什么的烦恼...
java·后端·程序员
无奈何杨19 小时前
小团队的商业化模板参考:从项目制到产品收入
程序员·产品·创业
Java技术小馆19 小时前
AI模型统一接口桥接工具
后端·程序员
AI大模型2 天前
利用腾讯混元大模型搭建Cherry Studio自有知识库,打造“智能第二大脑”
程序员·llm·agent
文心快码BaiduComate2 天前
弟弟想看恐龙,用文心快码3.5S快速打造恐龙乐园
前端·后端·程序员