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

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

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

1. 输入收集与异常处理

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

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

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

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

2. 高级流控制命令

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

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

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

http://www.jsqmd.com/news/90625/

相关文章:

  • 14、深入探索 awk 脚本编写
  • 15、Awk编程:表达式、系统变量及应用示例
  • 16、Awk编程:关系与布尔运算符、文件信息处理及格式化输出
  • 17、Awk编程:参数传递、信息检索与控制结构详解
  • 18、《编程中的条件语句、循环与数组应用》
  • 19、Awk编程:数组操作与实用技巧
  • 20、Awk 函数全面解析
  • 21、深入探索函数与 `getline` 函数:从自定义函数到输入处理
  • 22、Awk编程:文件、管道与菜单命令生成器的实用指南
  • 23、Awk编程:数据处理、报告生成与调试技巧
  • 24、Awk编程:数值限制、调用语法及不同版本特性解析
  • 25、Awk编程:工具、应用与实战详解
  • Flux.1 Kontext引爆AIGC领域:零门槛图像编辑革命降临,商用级效果触手可及
  • 19、实用脚本:电影信息查询、货币转换、比特币地址信息获取与网页变更跟踪
  • 20、网站管理黑客技巧:CGI脚本的应用与安全
  • 21、网站管理与脚本优化技巧
  • 并行节点-–-behaviac
  • 22、Web 与互联网管理实用脚本指南
  • 135M参数推理模型新突破:trlm-135m如何用三阶段训练实现小模型逻辑飞跃
  • 10、实用脚本工具:温度转换、贷款计算与日程管理
  • 11、优化 Unix 系统的实用脚本与技巧
  • 12、Unix 脚本实用指南:从文本搜索到系统管理
  • 15、实用Shell脚本助力系统管理
  • 29、云端与图像脚本实用指南
  • 30、图像魔法棒:ImageMagick实用脚本指南
  • 大模型通义千问3-VL-Plus - QVQ 视觉推理模型
  • 多模态AI里程碑:智谱AI CogVLM2以190亿参数实现性能跃升,开源生态再添强援
  • Angular-loading-bar与$resource集成:优雅处理REST API请求
  • 腾讯开源POINTS-Reader:革新多语言文档OCR技术,600M参数模型实现高效文本提取
  • DDD从0到企业级:迭代式学习 (共17章)之 二