sed : Stream EDitor
行编辑器(全屏编辑器:vi,nano;行编辑器sed)
sed模式空间
默认不编辑原文件,仅对模式空间中数据做处理,处理结束后,将模式空间打印到屏幕
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等
sed 用法
set [options]“AddressCommand”examplefile
options
-n 静默模式,不显示模式空间内容
-i: 直接修改原文件
-e: SCRIPT –e SCRIPT:可以同时执行多个脚本
-f: /PATH/TO/SED_SCRIPT 脚本文件
Address:
1.StrartLine,EndLine
例如: 1,100 $最后一行 $-number倒数第number行
2/ReqExp/正则表达式
3/pattern1/,/pattern2/
第一次被pattern1匹配到的行开始至第一次被pattern2匹配到的行结束,这蹭的所有行
4LineNumber
指定的行
5StartLine, +N
从startLine开始,向后N行
Command
d 删除符合条件的行
p 显示符合条件的行
a \string:在符合条件的行后追加一string 使用\n可以换行
sed "/Ctrl/a\as\ndf" /etc/inittab
i \string :在符合条件的行前面追加一String
r FILE: 将指定的文件的内容添加到符合条件的行处
w FILE:将指定范围的行另存到指定的文件中
s /pattern/string/修饰符 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
s### 或s@@@
修饰符
g:全局替换
i:忽略字符大小写
使用&符,引用全部匹配到的字符串,或使用后向引用\1(number)