news 2026/4/5 8:43:49

13、Sed脚本高级流控制命令详解

作者头像

张小明

前端开发工程师

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

Sed脚本高级流控制命令详解

1. 输入收集与处理脚本

在编写脚本时,有时需要收集输入并在匹配到特定模式后进行处理。例如,有一个脚本展示了收集输入并保存,直到匹配到另一个模式的机制。这个脚本中,第一个过程不会执行到底,因为此时还不需要输出;而第二个过程会执行到底,在开始收集下一段的行之前,清空模式空间和保持空间。

同时,该脚本还说明了如何使用寻址来设置排他性地址,即一行必须匹配其中一个地址。通过设置地址,可以处理输入中的各种异常情况,从而提高脚本的可靠性。

比如,若输入文件的最后一行不是空行,之前收集的自最后一个空行以来的所有行都不会输出。为解决这个问题,可以制造一个空行,让后续脚本中的空行处理程序能够匹配。具体做法如下:

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

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

2. 高级流控制命令

在sed的正常流控制中,有两个命令可以控制脚本的执行部分和时间,即分支(b)和测试(t)命令。这两个命令可以将脚本中的控制权转移到包含指定标签的行。如果未指定标签,控制权将传递到脚本的末尾。分支命令无条件转移控制权,而测试命令是条件转移,仅在替换命令更改了当前行时才会发生。

2.1 标签

标签是最多由七个字符组成的序列(

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

15、Awk 表达式与系统变量全解析

Awk 表达式与系统变量全解析 1. 表达式基础 表达式在数据处理中十分关键,可用于存储、操作和检索数据,这与 sed 有所不同,但却是大多数编程语言的常见特性。表达式经计算后会返回一个值,它由数字和字符串常量、变量、运算符、函数和正则表达式组合而成。 1.1 常量 常量…

作者头像 李华
网站建设 2026/3/28 19:52:35

Linly-Talker结合MyBatisPlus实现用户数据持久化管理

Linly-Talker 结合 MyBatisPlus 实现用户数据持久化管理 在数字人技术加速落地的今天,一个看似“智能”的系统是否真正具备工程可用性,往往不取决于它能生成多么流畅的回答或逼真的动画,而在于它能否可靠地记住用户、追溯行为、并在异常后恢复…

作者头像 李华
网站建设 2026/4/4 9:52:55

终极iOS项目瘦身指南:一键清理未使用资源的神器

终极iOS项目瘦身指南:一键清理未使用资源的神器 【免费下载链接】LSUnusedResources A Mac App to find unused images and resources in Xcode project. 项目地址: https://gitcode.com/gh_mirrors/ls/LSUnusedResources 在iOS/macOS开发过程中,…

作者头像 李华
网站建设 2026/4/1 16:33:00

5大关键技术突破:如何构建高质量老照片修复数据集

5大关键技术突破:如何构建高质量老照片修复数据集 【免费下载链接】Bringing-Old-Photos-Back-to-Life Bringing Old Photo Back to Life (CVPR 2020 oral) 项目地址: https://gitcode.com/gh_mirrors/br/Bringing-Old-Photos-Back-to-Life 老照片修复作为AI…

作者头像 李华
网站建设 2026/4/3 4:48:50

3步配置CopyQ剪贴板:打造跨平台高效工作流

3步配置CopyQ剪贴板:打造跨平台高效工作流 【免费下载链接】CopyQ hluk/CopyQ: CopyQ 是一个高级剪贴板管理器,具有强大的编辑和脚本功能,可以保存系统剪贴板的内容并在以后使用。 项目地址: https://gitcode.com/gh_mirrors/co/CopyQ …

作者头像 李华
网站建设 2026/4/3 3:23:40

uPlot深度实战指南:企业级实时监控系统性能优化全解析

uPlot深度实战指南:企业级实时监控系统性能优化全解析 【免费下载链接】uPlot 📈 A small, fast chart for time series, lines, areas, ohlc & bars 项目地址: https://gitcode.com/gh_mirrors/up/uPlot 在当今数据驱动的时代,高…

作者头像 李华