sed即为流编辑器,英语“stream editor”的缩写。他将源文件按行读取到临时缓存区(也叫模式空间)中,每读取一行都对其按条件进行编辑。默认情况下编辑只作用于缓存区,而不修改源文件,并将各行修改前和修改后的结果均打印至屏幕。
如图 1: sed 处理过程
sed语法:sed
[选项] '编辑条件及编辑命令'
输入文本(文件)
选项:
-n∶使用安静(silent)模式,只打印被sed命令处理的行,不打印未被sed命令处理的行。
-e∶对模式空间中的各行执行多重编辑,编辑命令的顺序将影响结果。
-f∶用一个sed脚本对输入进行编辑, -f filename指定sed脚本的文件名。
-r∶编辑条件中使用扩展的正则表达式
-i∶直接修改源文件,而不在屏幕上输出
编辑条件:
1、采用正则表达式进行匹配(包括字符匹配、次数匹配、位置匹配)
2、行号匹配 (行号从1开始)
first~step:这两个单词的意思: first 指起始匹配行, step 指步长,例如: sed -n 2~5p 含义:从第二行开始匹配,隔 5 行匹配一次,即 2,7,12.......。
addr1, +N:从 addr1 这行到往下 N 行匹配,总共匹配 N+1 行。
addr1, ~N:从addr1行开始,直到行号为N的整数倍时结束。
编辑命令: