sed:命令讲解一

sed的使用:

sed的使用

  • 一、sed
    • 1.定义:
    • 2.工作流程:读取,执行,显示。
    • 3.基本操作格式:
    • 4.sed操作符:
    • 5.扩展:

一、sed

1.定义:

一种流编辑器,会在编辑器处理数据之前,基于预先提供的一组规则来编辑数据流。可以根据命令来处理数据流中的数据,要么在命令行中输出,要么存储在命令文本文件中。

2.工作流程:读取,执行,显示。

(1)读取:sed从输入流中(文件,管道,标准输入)中读取一行内容,并存到临时缓冲区中(又称模式空间)。

(2)执行:默认情况下,所有sed命令都在模式空间中顺序执行,除非指定新的地址,否则sed命令将在所有行上依次执行。

(3)显示:发送修改后的内容到输出流,在发送数据后,模式空间会被清空。在所有的文件内容都被处理完成之前,上述内容将重复执行。

3.基本操作格式:

(1)sed -e ‘操作’ 文件1 文件2

(2)sed -e -n ‘操作’ 文件1 文件2

(3)sed -f 脚本文件 文件1 文件2

4.sed操作符:

(1)常用选项:

选项 操作
s 替换指定字符
a 在当前行的下一行增加内容
i 在选定行的上一行插入指定内容
c 将选定行替换为指定内容
-n 过滤sed的默认输出
y 字符转换,转换前后的字符长度必须相同
p 打印,通常与“-n”一起使用
l 打印数据流中的文本和不可打印的字符
r 扩展正则表达式
d 删除选定行

(2)实操:

1.sed -n 'p' test.txt  #打印文本内容

sed:命令讲解一_第1张图片

1.1行号范围区间打印:[root@test1 ~]# sed -n '1p' test.txt 

sed:命令讲解一_第2张图片

sed:命令讲解一_第3张图片

2.奇数行和偶数行打印:[root@test1 ~]# sed -n 'n;p' test.txt  #偶数行打印

sed:命令讲解一_第4张图片

2.2[root@test1 ~]# sed -n 'p;n' test.txt  #奇数行打印

sed:命令讲解一_第5张图片

3.打印含指定字符的行:
[root@test1 ~]# sed -n '/k/p' test.txt  #打印包含k的行

sed:命令讲解一_第6张图片

5.扩展:

(1)应用基础正则表达式进行打印:

1.[root@localhost sed]#sed -n  '/^root/p' /etc/passwd  #以root为开头的所有内容

在这里插入图片描述

2.[root@localhost sed]#sed -n  '/bash$/p' /etc/passwd  #以bash结尾的所有内容

sed:命令讲解一_第7张图片

3.[root@localhost sed]#sed -n  '4,/bash$/p' /etc/passwd  #从第四行开始,一直打印到第一个以bash为结尾的所在行

sed:命令讲解一_第8张图片

(2)使用扩展正则表达式打印:

1.用sed命令打印:
[root@test1 ~]# sed -r -n "/(\([0-9]+\)|[0-9]+)[ -]?[0-9]+[ -]?[0-9]+/p" test.txt

在这里插入图片描述

你可能感兴趣的:(linux,正则表达式,运维,bash,云计算)