第一段:基本正则列表与扩展正则
第二段:sed 文本处理工具的用法介绍
第三段:认识sed工具的 n、r、i 选项指令
第四段:认识sed工具的 p、d、s 条件指令
第五段:认识sed工具的 i、a、c 条件指令
第六段:认识sed高级应用 r、w 条件指令
第七段:综合案例
Linux sed
根据推出时间的不同,分为基本正则和扩展正则,扩展正则在基本正则的基础上做了一些优化和新增了一些正则表达符号,因为一些命令没有及时更新,所以你可能会遇到有些命令只支持基本正则,不支持扩展正则,或者需要添加一些支持扩展正则的选项.
关于正则与扩展正则区别的详细介绍可以看我另一篇shell 正则的介绍
基本正则列表
扩展正则列表
第二段:sed 文本处理工具的用法介绍:
相关说明如下:
sed命令的常用选项如下:
sed命令常用条件指令如下
# sed [选项] '条件指令' 文件.. ..
上面的条件指令 我们可以拆分为 # sed [选项] '范围界定+操作指令' 文件.. .. 的格式这样更容易理解
sed命令可以使用行号或正则做为条件匹配:
①.)sed命令的 -n 选项
执行p打印等过滤操作时,希望看到的是符合条件的文本.但不使用任何选项时,默认会将原始文本一并输出,从而干扰过滤效果.比如,尝试用sed输出/etc/hosts的第1行:
需要用到扩展正则时,需要加 -r选项
正常情况下,sed命令所做的处理只是把操作结果(包括打印、删除等)输出到当前终端屏幕,而并不会对原始文件做任何更改:
若希望直接修改文件内容,应添加选项 -i .
需要特别注意的是,和一些指令组合和使用的先后顺序都会对最终输出结果产生影响
例如: 指令 -n、和操作操作p
下文中关于使用sed修改文件的示例中,为了避免大家在练习过程中因误操作导致系统故障,命令省略 –i 选项,不再逐一说明.需要时,大家可自行加上此选项.
用分号来隔离多个操作,比如:
①.)行号案例
①.)下面看看sed工具的p指令案例集锦(自己提前生成一个a.txt文件)
注意:替换操作的分隔"/"可改用其他字符,如#、等,便于修改文件路径
以下操作使用nssw.txt作为测试文件.
参考数据文件内容如下:
使用"()"可实现保留功能,所以可参考下列操作解决:
# sed [选项] '条件指令' 文件..
sed工具的多行文本处理操作:
基本语法格式案例:
①.)sed命令的 i 指定行之前插入基本功能
①.)sed命令的 r 读取文件
①.) 综合案例1
Sed是一项Linux指令,全称是Stream
Sed命令可以对文件进行增加、删除、修改和查找操作,所以学好sed命令是写自动化脚本必须的基础之一.
sed流程:sed通过一次仅读取一行内容来对某些指令进行处理后输出.
①.、sed通过文件或管道读取文件内容,但sed默认并不直接修改源文件,而是将读入的内容复制到缓冲区中,称之为模式空间.
sed基本语法格式:
用法:sed[选项]...{脚本指令}[输入文件]...
选项: -version 显示sed版本
-help :显示帮助文档
-n,-quiet,-silent静默输出,默认情况下,sed程序在所有的脚本指令执行完毕后,将自动打印模式空间中的内容.
-e script允许多个脚本指令被执行
-f script-file从文件中读取脚本指令,对编写自动化脚本程序很实用
-i ,-in-place 该选项直接修改源文件
-l N 该选项指定l指令可以输出的行长度,l指令为输出非打印字符.
-posix 禁用GNU sed扩展功能.
-r 在脚本指令中使用扩展正则表达式.
-s,-separate 默认情况下,sed将把输入的多个文件名作为一个长的连续的输入流.而GNU sed则允许把它们当作单独的文件.
-u,-unbuffered 最低限度的缓存输入与输出
a,append表示追加指令;
i,insert表示插入指令;
d,delete表示删除指令;
s,substitution表示替换指令.
sed脚本指令的基本格式是:
[地址,即路径]命令(有些命令仅可以对一行操作,有些可以对多行操作),命令也可以用花括号进行组合,使命令序列可以作用于同一个地址.
address{
command1
}
sed的基本工作方式是:
sed的替换命令s:
为什么要有多行模式: 配置文件一般有单行出现,但也有使用json或XML格式的配置文件,为多行出现.
多行模式处理命令N、D、P
以上就是土嘎嘎小编为大家整理的linux中sed命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!