sed文本处理工具的用法:
① 前置命令 | sed [选项] '条件指令'
② sed [选项] '条件指令' 文件
相关说明:
- 条件可以是行号或者/正则/
- 没有条件时,默认为所有条件
- 指令可以是增、删、改、查等指令
- 默认sed会将所有输出的内容都打印出来,可以使用-n屏蔽默认输出
- 选项中可以使用-r选项,让sed支持扩展正则
认识sed工具的基本选项:
- -n (屏蔽默认输出,默认sed会输出读取文档的全部内容)
- -r (让sed支持扩展正则)
- -i (sed直接修改源文件,默认sed只是通过内存临时修改文件,源文件无影响)
1) sed 命令的-n选项
执行p打印等过滤操作时,希望看到的是符合条件的文本。但不使用任何选项时,默认会将原始文本一并输出,从而干扰过滤效果。比如,尝试用sed输出/etc/hosts的第一行:
可以发现所有的行都被显示出来了(第一行重复2次)。——正确的用法应应该添加-n选项,这样就可以只显示第一行了:
行号可以是连续的行号,如打印passwd第3行道第6行账户信息:
2) sed命令的-i选项
正常情况下,sed命令所做的处理知识把操作结果(包括打印、删除等)输出到当前终端屏幕,而并不会对原始文件做任何更改:
若希望直接修改文件内容,应添加选项-i。
比如,直接删除test.txt(自行创建一个任意内容的文件)的第1~4行:
3)多个指令可以使用分号隔离
用分号来隔离多个操作,比如: