news 2026/7/14 20:52:18

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/7/14 18:05:53

15、Awk编程:表达式、系统变量及应用示例

Awk编程:表达式、系统变量及应用示例 1. 表达式基础 表达式在数据存储、操作和检索方面与sed有很大不同,但它是大多数编程语言的常见特性。表达式经过求值后会返回一个值,它由数字和字符串常量、变量、运算符、函数和正则表达式组合而成。 1.1 常量 常量有两种类型:字符…

作者头像 李华
网站建设 2026/7/14 10:34:27

32、拼写检查与索引生成工具详解

拼写检查与索引生成工具详解 在文本处理和编辑过程中,拼写检查和索引生成是两项重要的任务。本文将详细介绍两个实用工具: spellcheck.awk 和 masterindex 脚本,它们分别用于交互式拼写检查和单卷或多卷索引的生成。 1. spellcheck.awk 交互式拼写检查器 spellcheck.a…

作者头像 李华
网站建设 2026/7/14 20:54:55

10、实用脚本工具:温度转换、贷款计算与日程管理

实用脚本工具:温度转换、贷款计算与日程管理 在日常的计算和日程管理中,脚本工具可以极大地提高效率。以下将详细介绍几个实用的脚本,包括温度转换、贷款支付计算以及日程跟踪。 1. 温度转换脚本(convertatemp) 温度转换脚本能够在华氏度(Fahrenheit)、摄氏度(Celsi…

作者头像 李华
网站建设 2026/7/12 11:13:15

20、网站管理黑客技巧:CGI脚本的应用与安全

网站管理黑客技巧:CGI脚本的应用与安全 1. 引言 Shell脚本不仅能为构建与各种网站协作的出色命令行工具提供良好环境,还能改变你自己网站的运行方式。本章介绍的脚本均为通用网关接口(CGI)脚本,用于生成动态网页。不过,在编写CGI脚本时,必须时刻留意可能存在的安全风险…

作者头像 李华
网站建设 2026/7/14 18:05:50

30、图像魔法棒:ImageMagick实用脚本指南

图像魔法棒:ImageMagick实用脚本指南 1. 水印添加脚本 在处理图像时,为图片添加水印是一项常见的需求。下面是一个使用 ImageMagick 实现水印添加的脚本示例: newfilename="$prefix+wm.$suffix" x composite -dissolve 75% -gravity south $wmfile "$1&q…

作者头像 李华