sed命令_sed -i s/..../g 特殊字符

(1) 2024-08-11 14:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
sed命令_sed -i s/..../g 特殊字符,希望能够帮助你!!!。

目录

一、sed概述

1、sed的原理

2、sed的流程

3、sed的常见选项

二、sed的运用

1、sed的查操作

2、sed的删操作

3、sed的替换操作

4、sed的增加内容操作


一、sed概述

1、sed的原理

sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供一组规则来编辑数据流。

sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本中。

2、sed的流程

(1)读取流程

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

(2)执行流程

默认情况下,所有的sed命令都在模式空间中顺利地执行,除非指定了行的地址,否则sed命令,将会在所有的行上依次执行。

(3)显示流程

发送修改后的内容到输出流。在发送数据后,模式空间将会被清空,在所有的文件内容都被完成处理之前,上述过程被反复执行,直至内容被处理完。

3、sed的常见选项

(1)命令格式

sed  -e   '操作'   文件1  文件2

sed -n -e '操作'  文件1  文件2

sed  -f  脚本文件   文件1  文件2

sed -e -i   '操作'    文件1   文件2

(2)常见选项

(1)-e  或  --expression

表示用指定命令来处理输入的文本文件,只有一个操作命令时可以省略,一般在执行多个操作命令使用。

(2)-f 或 --file

表示用指定脚本文件来处理输入的文本文件

(3)-h  或  --help

显示帮助

(4)-n 或 s --quiet

禁止sed编辑器输出,但可以与p命令一起使用完成输出

(5)i

直接修改文本文件

(3)常用操作

(1)s

替换指定字符

(2)d

删除指定的行

(3)a

在指定的行上一行增加一行指定内容

(4)i

在指定的上一行插入一行指定内容

(5)c

将选定行内容替换成指定内容

(6)y

字符转换,转换之后的字符长度必须相同

(7)p

  打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容; 如果有非打印字符,则以 AscII码输出。其通常与_n"选项一起使用

(8)=

打印行号

(9)l

 打印数据流中的文本和不可打印的ASCII字符(比如结束符s、制表符\t)

二、sed的使用

1、sed的查操作

(1)方法一

使用sed命令查看/etc/shdaow

[root@localhost ~]# sed ' ' /etc/shadow root:$6$3Rfh74ZoYVL60OLJ$atijevnzniTepczYYLv.WAJ9bmIT0vuOlM.7prgCRUjAeiDoeKd89c96baB32ajZH6G1/rq6DuVXyf3ktp7jY/::0:99999:7::: bin:*:17110:0:99999:7::: daemon:*:17110:0:99999:7::: adm:*:17110:0:99999:7::: lp:*:17110:0:99999:7::: sync:*:17110:0:99999:7::: shutdown:*:17110:0:99999:7::: halt:*:17110:0:99999:7::: mail:*:17110:0:99999:7::: operator:*:17110:0:99999:7::: 

sed命令_sed -i s/..../g 特殊字符_https://bianchenghao6.com/blog__第1张

(2) 方法二

[root@localhost ~]# sed -n 'p ' /etc/shadow root:$6$3Rfh74ZoYVL60OLJ$atijevnzniTepczYYLv.WAJ9bmIT0vuOlM.7prgCRUjAeiDoeKd89c96baB32ajZH6G1/rq6DuVXyf3ktp7jY/::0:99999:7::: bin:*:17110:0:99999:7::: daemon:*:17110:0:99999:7::: adm:*:17110:0:99999:7::: lp:*:17110:0:99999:7::: sync:*:17110:0:99999:7::: shutdown:*:17110:0:99999:7::: halt:*:17110:0:99999:7::: mail:*:17110:0:99999:7::: operator:*:17110:0:99999:7:::

查看指定行

[root@localhost ~]# sed -n '3p' /etc/shadow daemon:*:17110:0:99999:7::: 

sed命令_sed -i s/..../g 特殊字符_https://bianchenghao6.com/blog__第2张

 使用正则表达式

匹配root开头的行

[root@localhost ~]# sed -n '/^root/p' /etc/shadow root:$6$3Rfh74ZoYVL60OLJ$atijevnzniTepczYYLv.WAJ9bmIT0vuOlM.7prgCRUjAeiDoeKd89c96baB32ajZH6G1/rq6DuVXyf3ktp7jY/::0:99999:7::: 

sed命令_sed -i s/..../g 特殊字符_https://bianchenghao6.com/blog__第3张

查看连续的行

查看/etc/shadow的3到6行的内容

[root@localhost ~]# sed -n '3,6p' /etc/shadow daemon:*:17110:0:99999:7::: adm:*:17110:0:99999:7::: lp:*:17110:0:99999:7::: sync:*:17110:0:99999:7::: 

 sed命令_sed -i s/..../g 特殊字符_https://bianchenghao6.com/blog__第4张

查看文件最后一行的内容

[root@localhost ~]# sed -n '$p' /etc/shadow zs:$6$LA7n3jCI3IvhMBHS$.9YqBUKpKwb9DHSIPX9KDVV4YJ5g04GxFQI8jdGx8XJoMqEgkdLrlAd03ahyCcjejZ7iKuO.Iv5OSlGxoSCTD.::0:99999:7::: 

sed命令_sed -i s/..../g 特殊字符_https://bianchenghao6.com/blog__第5张

 

2、sed的删操作

 删除指定行并不是真正删除,只是将删除了的结果显示出来,并不是真正删除了,如果想运行在文本中需要配合-i命令

删除文本中空行的操作

[root@localhost ~]# sed '/^$/d' test.txt 12 24 23 334 234 

sed命令_sed -i s/..../g 特殊字符_https://bianchenghao6.com/blog__第6张

 删除文件指定的行

[root@localhost ~]# sed '2d' t2.txt 123 789 321 451 

sed命令_sed -i s/..../g 特殊字符_https://bianchenghao6.com/blog__第7张

3、替换

命令格式

sed   指定行      's/需要替换的字符串/替换后的字符串/替换标记

(1)g

表示要替换所有匹配的行

(2)w

将替换后的结果保存到文档

将文件中321替换成345

[root@localhost ~]# sed 's/321/345/' t2.txt 123 456 789 345 451 

sed命令_sed -i s/..../g 特殊字符_https://bianchenghao6.com/blog__第8张

4、sed的增加内容操作

在第二行下方添加234

[root@localhost ~]# sed '2a 234' t2.txt 123 456 234 789 321 451 

 sed命令_sed -i s/..../g 特殊字符_https://bianchenghao6.com/blog__第9张

 

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复