当前位置: 首页 > news >正文

Linux| Awk 中“next”命令奇用

简介

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

next命令

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

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

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

alt

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

alt

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

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

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

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

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

alt

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

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

Reference
[1]

Source: https://www.tecmint.com/use-next-command-with-awk-in-linux/

本文由 mdnice 多平台发布

http://www.lryc.cn/news/336601.html

相关文章:

  • 基于Springboot的箱包存储系统(有报告)。Javaee项目,springboot项目。
  • JavaScript_语法--变量
  • P1843 奶牛晒衣服
  • 功能强大:JMeter 常用插件全解析
  • vulhub之fastjson篇-1.2.27-rce
  • 基于springboot实现教师工作量管理系统项目【项目源码+论文说明】计算机毕业设计
  • [StartingPoint][Tier1]Crocodile
  • 【Qt】:常用控件(四:显示类控件)
  • gradio简单搭建——关键词简单筛选【2024-4-11优化】
  • docker完美安装分布式任务调度平台XXL-JOB
  • java使用while循环输出2-100的所有素数
  • VSCode中调试C++程序
  • Can Transformer and GNN Help Each Other?
  • 在隐私计算应用中和数链具备哪些技术特点?
  • 【智能家居入门4】(FreeRTOS、MQTT服务器、MQTT协议、微信小程序)
  • 爬取豆瓣(线程、Session)优化版本
  • 拷贝控制总结
  • 无重复字符串的最长子串
  • javaScript Object.hasOwn()的用法
  • MINI2440 开发板 给他干出来了
  • 上海人工智能实验室的书生·浦语大模型学习笔记(第二期第三课——上篇)
  • 前端小白的学习之路(Vue2 三)
  • ChatGPT 之优势与缺陷
  • python爬虫———post请求方式(第十四天)
  • 51蓝桥杯之DS18B20
  • TiDB 组件 GC 原理及常见问题
  • 【c++】STl-list使用list模拟实现
  • 号卡极团分销管理系统 index.php SQL注入漏洞复现
  • 内核驱动更新
  • 故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab)