linux 文本 处理 三剑客 之 sed 命令

Keelia ·
更新时间:2024-11-14
· 815 次阅读

文章目录1.sed命令的定义2.sed命令选项3.种调用sed的方式3.1 在命令行调用sed3.2 **==-e在一个命令行调用多个编辑器==**3.3 **==-f 在文件中调用编辑器==**3.4 s替换命令3.5脚本替换中的几个替换标记3.5 行寻址3.6 组合命令3.7 正则表达式3.8 删除行3.9 插入数据(i,a)3.10 替换命令(y)3.11 打印行 p3.12 sed和文件一起工作几个小练习 1.sed命令的定义

在这里插入图片描述

原来的内容是在磁盘当中放着,现在用sed命令处理的时候将内容掉入内存的一个地方用户处理,这个处理空间也叫模式空间.

sed命令可以处理文件中的数据或者用户输入的数据。

sed的优点:sed速度快,在启动vim的时间,sed已经完成了需要执行的操作sed命令比交互式的编辑器快很多

2.sed命令选项

在这里插入图片描述

语法及动作说明sed [-hnV][-e][-f][文本文件]

参数说明:

-e或--expression= 以选项中指定的script来处理输入的文本文件。 -f或--file= 以选项中指定的script文件来处理输入的文本文件。 -h或--help 显示帮助。 -n或--quiet或--silent 仅显示script处理后的结果。 -V或--version 显示版本信息。

动作说明:

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d :删除,因为是删除啊,所以 d 后面通常不接任何东西; i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~ s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦! 3.种调用sed的方式 3.1 在命令行调用sed

在这里插入图片描述

3.2 -e在一个命令行调用多个编辑器

中间用分号割开
在这里插入图片描述
sed命令只是改变了输出内容,没有改变文件内容
在这里插入图片描述

3.3 -f 在文件中调用编辑器

在这里插入图片描述

3.4 s替换命令 sed 's/要被取代的字串/新的字串

在这里插入图片描述

3.5脚本替换中的几个替换标记 默认情况下只能替换一行中的第一个匹配的

在这里插入图片描述
g 替换文本中每处匹配模式
在这里插入图片描述
数字(例如2)
只替换每行第2次出现的匹配模式
在这里插入图片描述
p 结合-n 只输出被命令修改过的行
在这里插入图片描述
w 将输出保存在文件中(包含操作替换的行)
在这里插入图片描述

在这里插入图片描述

替换字符 \ ! # 都可对特殊符号进行转义,习惯用哪个就用哪个

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.5 行寻址

如果想让命令只作用在指定的行
在这里插入图片描述
在这里插入图片描述

3.6 组合命令

在这里插入图片描述
在这里插入图片描述

3.7 正则表达式

某行开始到结尾的所有行
在这里插入图片描述

3.8 删除行

没有改变源文件的内容,只是删除了输出内容
在这里插入图片描述
删除第三行数据
在这里插入图片描述
删除第二三行
在这里插入图片描述
删除第三行到结尾
在这里插入图片描述
删除第一行
在这里插入图片描述
与正则表达式结合
在这里插入图片描述

3.9 插入数据(i,a)

i 在指定行前插入新的行
在这里插入图片描述
a在指定行后追加新的行
在这里插入图片描述
对文件的指定行插入
在这里插入图片描述
在这里插入图片描述
将新行插入在多行数据流末尾
在这里插入图片描述
在第一行之前插入多行数据
在这里插入图片描述
修改某行的数据c
在这里插入图片描述
在这里插入图片描述
一次改变好几个,而不是一个一个去改变.
在这里插入图片描述

3.10 替换命令(y) 唯一一个可以处理单个字符的sed命令

在这里插入图片描述
y 替换单个字符
它会替换转换命令要求替换的所有实例,不会考虑它们出现的位置
在这里插入图片描述

3.11 打印行 p

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打印行号 ‘=’
在这里插入图片描述

3.12 sed和文件一起工作

w 向文件中写入指定行
在这里插入图片描述
r 从文件中读取
将一个独立的文件插入到一个数据流中。
在这里插入图片描述
在这里插入图片描述
对源文件进行替换

如果需要对源文件进行替换,则加入-i参数即可
-i 表示操作在源文件上生效.否则操作内存中数据,并不写入文件中.

在这里插入图片描述

几个小练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
-n:取消默认输出。注意:sed命令会默认把输入行打印到屏幕上,所以如果想精准的控制输出,就需要-n。
在这里插入图片描述


作者:马婧瑜



Linux sed

需要 登录 后方可回复, 如果你还没有账号请 注册新账号