“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程序命令编辑
替换语法
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