news 2026/6/24 7:15:11

13、Sed脚本高级流控制与应用详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
13、Sed脚本高级流控制与应用详解

Sed脚本高级流控制与应用详解

1. 输入收集与异常处理

在一些脚本中,我们需要收集输入并在匹配到特定模式后再进行处理,同时要关注脚本中的流控制。例如,有一个脚本,其第一个过程不会直接输出内容,而第二个过程会在开始收集下一段内容前清空模式空间和保持空间。

另外,脚本还能通过地址设置来处理输入中的各种异常,从而提高脚本的可靠性。比如,如果输入文件的最后一行不是空行,之前收集自最后一个空行以来的所有行都不会被输出。为了解决这个问题,可以制造一个空行,让后续的空行处理程序能够匹配到。具体的处理程序如下:

${ /^$/!{ H s/.*// } }

这个程序需要放在之前展示的两个程序之前。其中,地址符号“$”只匹配文件的最后一行。在这个程序内部,会检查非空行。如果是空白行,则无需处理;如果当前行非空,则将其追加到保持空间,然后使用替换命令在模式空间中创建一个空行。退出该程序后,模式空间中会有一个空行,它会匹配后续添加HTML段落代码并输出段落的空行处理程序。

2. 高级流控制命令

2.1 分支(b)和测试(t)命令概述

在sed脚本中,分支(b)和测试(t)命令可用于控制脚本的执行流程,将控制权转移到包含指定标签的行。如果未指定标签,控制权会转移到脚本的末尾。分支命令是无条件转移,而测试命令是条件转移,只有在替换命令更改了当前行时才会发生。

标签是最多由七个字符组成的序列(POSIX标准允许实现支持更长的标签,GNU sed允许标签为任意长度),标签以冒号开头单独放在一行,冒号和标签之间不允许有

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 10:34:37

18、《编程中的条件语句、循环与数组应用》

《编程中的条件语句、循环与数组应用》 1. 输入循环示例 在编程中,输入循环是一个常见的操作。有一个有趣的主输入循环示例,它会提示用户输入内容,并从标准输入读取回复。使用 BEGIN 规则来提示用户输入一个数字,由于指定输入来自标准输入而非文件,程序在输出提示后会…

作者头像 李华
网站建设 2026/6/21 23:50:07

突破上下文限制:LongAlign-7B-64k模型引领长文本处理新范式

突破上下文限制:LongAlign-7B-64k模型引领长文本处理新范式 【免费下载链接】LongAlign-7B-64k 项目地址: https://ai.gitcode.com/zai-org/LongAlign-7B-64k 在人工智能对话系统飞速发展的今天,模型对长文本的理解与处理能力已成为衡量其性能的…

作者头像 李华
网站建设 2026/6/23 20:11:49

16、Linux系统管理与维护脚本实用指南

Linux系统管理与维护脚本实用指南 1. 调整程序优先级 在Linux系统中, renice 命令可用于更改程序的相对优先级。例如,当老板正在运行视频编辑器时,你可以降低长时间文件传输的优先级,同时提高视频编辑器的优先级,以确保重要程序能更流畅地运行。 2. 验证用户crontab条…

作者头像 李华
网站建设 2026/6/23 20:13:06

19、实用脚本:电影信息查询、货币转换、比特币地址信息获取与网页变更跟踪

实用脚本:电影信息查询、货币转换、比特币地址信息获取与网页变更跟踪 在日常的网络使用中,我们常常会有查询电影信息、进行货币转换、获取比特币地址信息以及跟踪网页变更等需求。下面将为大家介绍几个实用的脚本,帮助我们更高效地完成这些任务。 1. 电影信息查询脚本 m…

作者头像 李华
网站建设 2026/6/24 2:20:36

DDD从0到企业级:迭代式学习 (共17章)之 二

DDD模型设计实战:用事件风暴画出业务核心蓝图“上次你说DDD要先明确业务边界,但拿到‘电商下单’这种需求,我还是不知道从哪下手画模型”——这是很多开发者学完DDD基础后最直观的困惑。第一阶段我们搞懂了“实体、值对象”这些“零件”&…

作者头像 李华
网站建设 2026/6/23 22:14:04

Lumafly模组管理器:轻松打造专属空洞骑士游戏体验

Lumafly模组管理器:轻松打造专属空洞骑士游戏体验 【免费下载链接】Lumafly A cross platform mod manager for Hollow Knight written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/lu/Lumafly Lumafly是一款专为《空洞骑士》设计的跨平台模组管…

作者头像 李华