一.sed命令概述
Stream EDitor ,行编辑器
sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为”模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变除非你使用重定向存储输出.sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等
二.sed工具的用法:
sed [option]… ‘script’ inputfile…
常用选项:
-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑
-f /PATH/SCRIPT_FILE 从指定文件中读取编辑脚本
-r 支持使用扩展正则表达式
-i 原处编辑(慎用)
script:
‘地址命令’
地址定界:
1) 不给地址:对全文进行处理
2) 单地址:#:指定的行
/pattern/:被此处模式所能够匹配到的每一行
3) 地址范围
#,#
#,+#
/pat1/,/pat2/
#,/pat1/
4)~:步进
1~2奇数行
2~2偶数行
编辑命令:
d:删除模式空间匹配到的行
p:显示模式空间中的内容
a \text :在行后面追加文本;支持使用\n实现多行追加
I \text :在行前面插入文本;支持使用\n实现多行插入
c \text :替换行为单行或多行的文本
w /path/somefile :保存模式匹配的行至指定文件
r /path/somefile :读取指定文件的文本至模式空间中匹配到的行后
=:为模式空间中的行打印行号
!:模式空间中匹配行取反处理
sed工具
s///:查找替换,支持使用其他分隔符,s@@@,s###
s/string1/string2
替换标记:
g:行内全局替换
p:显示替换成功的行
w /PATH/TO/SOMEFILE: 将替换成功的行保存至文件中
三.sed 高级编辑工具
h:把模式空间中的内容覆盖至保持空间中
H:把模式空间中的内容追加至保持空间中
g:从保持空间取出数据覆盖至模式空间
G:从保持空间取出内容追加至模式空间
x:把模式空间中的内容与保持空间中的内容进行互换
n:读取匹配到的行的下一行覆盖至模式空间
N:读取匹配到的行的下一行追加至模式空间
d:删除模式空间中的行
D:删除当前模式空间开端至\你的内容(不再传至标准输出),放弃之后的命令,但是对剩余模式空间重新执行sed
原创文章,作者:Kartik,如若转载,请注明出处:http://www.178linux.com/33612