sed :流编辑器,也是行编辑器
sed的基本用法:
- sed在读取一行数据时,将行数据存储于临时缓冲区内,称为模式模式空间
- sed默认不会编辑源文件,仅对模式空间内的数据进行更改
- 处理结束后,会将模式空间内容打印至屏幕
set语法:
- sed [选项] '指定行号和执行方式' [文件名]
- 指定行号:
- m,n :从m行开始到n行结束
- 如:1,100 : 从第一行开始,最后一行结束
- 如果只有一个参数,表示精确匹配某一行
- $ :表示最后一行
- /条件/ :按条件匹配行
- 如 :/^root/ :以root开头的行
- /条件1/,/条件2/ :从第一次被条件1匹配到开始,到第一次被条件2匹配到结束,这中间的所有行
- m ,+n :表示从m开始,到m行后面的n行结束
- m,n :从m行开始到n行结束
- 选项:
- -n :静默模式,不默认显示模式空间的内容
- -i :直接修改源文件
- -e [脚本1] -e [脚本2] :可以同时执行多个脚本
- -f [脚本文件] [文件2] :脚本文件中每一行都为脚本,然后执行在文件2中
- -r :表示使用正则表达式
- 执行方式:
- d :删除匹配的行
- p :显示符合条件的行
- a string :在指定的行后面追加新行,内容为string
- 可以换行
- i string :指定的行在前面追加新行,内容为string
- nr[文件] :在n行后面,将文件的内容追加进去
- w [文件] :将指定范围内行内容存放到指定文件中
- s/string1/string2/ :查找匹配string1并替换成string2,默认只替换每一行中第一次被匹配到的字符
- 可以使用多种符号代替 '/' 如:s###、s@@@
- 修饰符:
- g :全局替换
- i :查找时忽略大小写
- &[字符] :被匹配到的字符串,在其后面追加字符
- 后项引用,针对字符串的个别字符
- 以l开头的字符串,替换一个字符为L
- 替换行首空格
- 截取命令号