Sed - 循环语句

Sed - 循环语句 首页 / Sed入门教程 / Sed - 循环语句

与其他编程语言一样,SED也提供了循环和分支函数来控制执行流程。在本章中,无涯教程将探索更多有关如何在SED中使用循环和分支的信息。

SED中的循环的工作方式类似于 goto 语句。 SED可以跳到标签所标签的行,然后继续执行其余命令。在SED中,可以如下定义 label 

:label 
:start 
:end 
:up

在上面的示例中,冒号(:)之后的名称表示标语法称。

要跳转到特定标签,可以使用 b 命令,后跟标语法称。如果省略标语法称,则SED跳至SED文件的末尾。

让无涯教程编写一个简单的SED脚本来了解循环和分支。在books.txt文件中,有几本书名及其作者的条目。下面的示例将书名及其作者名称合并在一行中,并用逗号分隔。然后搜索模式" Paulo"。如果该模式匹配,则在该行的前面打印一个连字符(-),否则它将跳转到 Print 标签,该标签将打印该行。

[jerry]$sed -n ' 
h;n;H;x 
s/\n/,/
/Paulo/!b Print 
s/^/-/
:Print 
p' books.txt

执行上述代码后,您将得到以下输出

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/sed/sed-loops.html

来源:LearnFk无涯教程网

A Storm of Swords, George R. R. Martin 
The Two Towers, J. R. R. Tolkien 
- The Alchemist, Paulo Coelho 
The Fellowship of the Ring, J. R. R. Tolkien 
- The Pilgrimage, Paulo Coelho
A Game of Thrones, George R. R. Martin 

为了提高可读性,每个SED命令都放在单独的行上。但是,可以选择将所有命令放在一行中,如下所示

[jerry]$sed -n 'h;n;H;x;s/\n/, /;/Paulo/!b Print; s/^/- /; :Print;p' books.txt 

执行上述代码后,您将得到以下输出

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/sed/sed-loops.html

来源:LearnFk无涯教程网

A Storm of Swords, George R. R. Martin 
The Two Towers, J. R. R. Tolkien 
- The Alchemist, Paulo Coelho 
The Fellowship of the Ring, J. R. R. Tolkien 
- The Pilgrimage, Paulo Coelho 
A Game of Thrones, George R. R. Martin

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

左耳听风 -〔陈皓〕

微服务架构实战160讲 -〔杨波〕

从0开始学游戏开发 -〔蔡能〕

Electron开发实战 -〔邓耀龙〕

基于人因的用户体验设计课 -〔刘石〕

业务开发算法50讲 -〔黄清昊〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

人人都用得上的数字化思维课 -〔付晓岩〕

AI大模型系统实战 -〔Tyler〕

好记忆不如烂笔头。留下您的足迹吧 :)