系列文章目录
前言
SED(Stream Editor,流编辑器)是一款非常强大的文本处理工具,它可以在一次执行中完成对文本文件中的多个操作,例如:查找、替换、删除、添加、排序等。SED具有灵活的命令语法、高效的批处理能力、大规模的文本处理能力以及强大的正则表达式支持,被广泛应用于Unix和Linux操作系统中。
Sed的基本工作模式是将输入数据流分成多行,并对每一行进行处理。Sed通过把处理过的行输出到标准输出,来实现对文本的修改。Sed支持多种命令和选项,可以实现不同的文本处理功能。
一、sed工具概述
sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区,称为"模式空间"(pattern space),接着用sed命令处理缓冲区的内容,处理完成后,把缓存区的内容送往屏幕,接着处理下一行,这样不断重复,直到文件末尾。文件内容并有改变,除非使用重定向存储输出。
Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作编写转换程序。
二、sed命令格式
1.
2.
三、
1.打印
(1)按行号区间
sed -n '1,3p' PDO.type //打印1-3行
sed -n '20,$p' PDO.type//打印20至结尾
sed -n '4,+2p' PDO.type//打印第4行再加两行内容
2.增加
3.删除
(1)删除文本文件某一行
sed -i '行号d' filename
4.修改
参数 | 描述 |
---|---|
-e | 允许在命令行中指定多个编辑命令 |
-i | 直接在输入文件中进行编辑(原地编辑),而不是在标准输出上打印结果 |
-n | 禁止默认输出,只打印被处理的文本。 |
sed '16caddress 192.168.1.500' profile.txt //打印全文,替换第5行为address 192.168.1.500
sed -n '16caddress 192.168.1.500' profile.txt //替换第5行为address 192.168.1.500,并单独打印该行
sed 'caddress 192.168.1.500' profile.txt //打印全文,每一行替换为address 192.168.1.500
sed '1,5caddress 192.168.1.500' profile.txt //打印全文,将1-5行的内容替换为一行的address 192.168.1.500
总结
总而言之,Sed是一种非常强大的文本处理工具,可以大大提高文本处理的效率。它的命令简单易学,但却非常灵活。无论你是在处理日志文件、配置文件还是其他文本数据,Sed都是一个非常实用的工具。