linux文本三剑客之sed详解

sed(stream editor, 流编辑器)是linux下非常强大的非交互式的文本编辑器,主要功能是对文本的每一行数据进行匹配后操作,比如按行、按字段、按正则匹配文本内容,然后进行增删改查操作。

sed原理

sed处理文本时,先将当前处理的行存储在临时缓冲区中,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后处理下一行,这样不断重复,直到文件末尾。

sed语法

sed [选项参数]  ‘command’  filename
常用参数说明 选项参数 功能
-e 多个sed指令时才需要使用-e;
-i 直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
-f 后跟保存了sed指令的文件
-n 取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行
-r ruguler 使用扩展正则表达式,默认情况sed只识别基本正则表达式 *

sed程序命令
linux文本三剑客之sed详解插图

替换语法

s/xx/yy/g
s/xx/yy/

+g :匹配每一行有行首到行尾的所有字符
不加g:匹配每一行的行首开始匹配,匹配到第一个符合的字段,就会结束,跳到下一行

多个sed命令使用

将sed.txt文件中的第1行删除并将 `abc` 替换为 `xyz`
sed -e '1d' -e 's/acc/xyz/g' sed.txt 

sed常用操作案例

linux文本三剑客之sed详解插图1

原创内容,禁止转载
程序员知识精选 » linux文本三剑客之sed详解