news 2026/5/1 11:05:21

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/4/23 12:35:01

21、深入探索函数与 `getline` 函数:从自定义函数到输入处理

深入探索函数与 getline 函数:从自定义函数到输入处理 1. 自定义函数的魅力 在编程的世界里,自定义函数是提升代码复用性和模块化程度的重要手段。 1.1 自定义函数基础 自定义函数允许程序员编写自包含的代码块,这些代码块可以在不同的程序中重复使用。函数定义的基本…

作者头像 李华
网站建设 2026/5/1 6:49:30

25、Awk编程:工具、应用与实战详解

Awk编程:工具、应用与实战详解 1. Awk工具概述 Awk是一种强大的文本处理语言,有多种不同的实现版本,各有特点和优势。 1.1 Michael的mawk mawk由Michael Brennan编写,与POSIX awk向上兼容,并且有一些扩展功能。它的主要优点是速度快且健壮,虽然功能比gawk少,但性能通…

作者头像 李华
网站建设 2026/5/1 6:50:46

31、Awk脚本语言快速参考

Awk脚本语言快速参考 1. 命令行语法 调用awk有两种基本形式: - awk [-v var=value] [-F re] [--] ’pattern { action }’ var=value datafile(s) - awk [-v var=value] [-F re] -f scriptfile [--] var=value datafile(s) 一个awk命令行由命令、脚本和输入文件名组成…

作者头像 李华
网站建设 2026/4/23 16:45:24

11、优化 Unix 系统的实用脚本与技巧

优化 Unix 系统的实用脚本与技巧 在 Unix 系统的使用过程中,尽管它们大多遵循 POSIX 标准,但不同系统之间仍存在诸多差异。比如,虽然大多数 Unix 或 Linux 系统都有 ls 命令,但并非所有版本都支持 --color 标志;Bourne shell 的不同版本对变量切片的支持情况也不尽相…

作者头像 李华
网站建设 2026/5/1 10:18:23

12、Unix 脚本实用指南:从文本搜索到系统管理

Unix 脚本实用指南:从文本搜索到系统管理 在 Unix 系统的使用过程中,脚本编程是提高效率、简化操作的重要手段。本文将介绍几个实用的 Unix 脚本,包括文本搜索、文件压缩以及系统管理等方面的脚本,帮助你更好地管理和操作 Unix 系统。 1. cgrep 脚本:带上下文的文本搜索…

作者头像 李华