1、简介
sed
(Stream Editor)是一个强大的流编辑器,用于对文本进行基本的转换和编辑操作。它可以在命令行中使用,非常适合处理大型文件或自动化文本处理任务。sed
使用脚本来处理输入流(文件或管道输入),并生成输出流。
2、基本用法
sed
的基本语法如下:
sed [选项] [脚本] [输入文件]
-
选项
:控制sed
的行为。 -
脚本
:包含一个或多个sed
命令。 -
输入文件
:要处理的文件。如果未指定文件,sed
会从标准输入读取数据。
3、常用选项
-
-n
:禁止自动打印模式空间。 -
-e
:指定要执行的脚本。 -
-f
:从文件中读取脚本。 -
-i
:直接修改输入文件(而不是输出到标准输出)。
4、常用命令
-
s/模式/替换/
:替换命令,将匹配模式的文本替换为指定文本。 -
d
:删除命令,删除匹配的行。 -
p
:打印命令,打印匹配的行。 -
a
:追加命令,在匹配行后追加文本。 -
i
:插入命令,在匹配行前插入文本。 -
c
:更改命令,将匹配行更改为指定文本。
5、实战示例
一、 基本用法
1、 替换文本
[root@localhost ~]# ls -l ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容
[root@localhost ~]# sed 's/hello/world/' file1.txt ### 将file1.txt文件中所有hello替换为 world输出。
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容,实际并未修改。
2、 直接修改文件
[root@localhost ~]# ls -l ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容
[root@localhost ~]# sed -i 's/hello/world/' file1.txt ### 将file1.txt文件中所有hello替换为 world。
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容,内容已修改。
3、 删除行
[root@localhost ~]# ls -l ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容
[root@localhost ~]# sed -i '/1/d' file1.txt ### 删除file1.txt文件中包含 1 的行。
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容,确认
4、 打印特定行
[root@localhost ~]# ls -l ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容
[root@localhost ~]# sed -n '4p' file1.txt ### 打印file1.xtxt文件的第 4 行。
5、 追加文本
[root@localhost ~]# ls -l ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容
[root@localhost ~]# sed -i '/hello,world!-5/ahello,world!-6' file1.txt ### 在file1.txt文件中包含hello,world!-5的行后追加hello,world!-6。
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容
6、 插入文本
[root@localhost ~]# ls -l ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容
[root@localhost ~]# sed -i '/-5/ihello,world!-7' file1.txt ### 在 file1.txt文件中包含-5的行前插入hello,world!-7。
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容
7、 更改文本
[root@localhost ~]# ls -l ### 列出当前目录的文件
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容
[root@localhost ~]# sed -i '/-3/ihello,world!-8' file1.txt ### 在 file1.txt文件中包含-3的行更改为hello,world!-8。
[root@localhost ~]# cat file1.txt ### 查看file1.txt的内容
原文始发于微信公众号(奶嘴很忙):sed – 文本处理工具
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/303680.html