shell正则表与文本工具sed

sed是一个强大的文本处理工具,用于读取、编辑和输出文本。它的工作流程包括读取、执行和显示,常用于Shell脚本中进行自动化文本处理。本文详细介绍了sed的用法,包括输出、删除、替换、迁移等操作,以及如何结合正则表达式进行文本筛选和处理。
摘要由CSDN通过智能技术生成

sed:文本解析转换工具

sed (stream
EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。sed也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于Shell脚本中,用以完成各种自动化处理任务。
sed 的工作流程主要包括读取、执行和显示三个过程。
读取: sed
从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,patternspace ) 。
执行: 默认情况下,所有的 sed命令都在模式空间中顺序地执行,除非指定了行的地址,否则 sed命令将会在所有的行上依次执行。
显示: 发送修改后的内容到输出流。在发送数据后,模式空间将会被清空
在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。

在这里插入图片描述

读入新的一行内容到缓存空间;
从指定的操作指令中取出第一条指令,判断是否匹配pattern;
如果不匹配,则忽略后续的编辑命令,回到第2步继续取出下一条指令;
如果匹配,则针对缓存的行执行后续的编辑命令;完成后,回到第2步继续取出下一条指令;当所有指令都应用之后,输出缓存行的内容;回到第1步继续读入下一行内容;
当所有行都处理完之后,结束;

sed[选项]'操作’参数
sed[选项]-f scriptfile参数

常见的sed 命令选项主要包含以下几种。
-e或–expression=:表示用指定命令或者脚本来处理输入的文本文件。
-f或–file=:表示用指定的脚本文件来处理输入的文本文件。
-h或–help:显示帮助。
-n、 --quiet或silent:表示仅显示处理后的结果。
-i.bak:直接编辑文本文件。
-r,-E:使用扩展正则表达式
-s:将多个文件视为独立文件,而不是单个连续的长文件流

“操作"用于指定对文件操作的动作行为,也就是sed的命令。通常情况下是采用的”[n1[,n2]]"操作参数的格式。n1、n2是可选的,代表选择进行操作的行数,如操作需要在5~20 行之间进行,则表示为"5,20动作行为”。常见的操作包括以下几种。

a:增加,在当前行下面增加一行指定内容。
c:替换,将选定行替换为指定内容。
d:删除,删]除选定的行。
i:插入,在选定行上面插入一行指定内容。
p:打印,如果同时指定行,表示打印指定行;如果不指定行ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值