sed是流编辑器,每次从文本读出一行放入pattern space(模式空间)中,如果可以被pattern space内存空间匹配到,sed就会对其执行预定的编辑(替换,删除)然后输出至标准输出,不能被匹配直接标准输出。画一张图有利于理解。非交互式编辑器非交互式就是只能在命令行内完成对文本的操做
sed用法
sed 选项 ‘/pattern/动作’文件路径
sed常用选项
-n:不输出模式空间内容到屏幕,被处理的行列出来
-e:进行多项编辑,对输入行应用多条sed命令时用
-f:直接把sed命令写进文件,-f就是执行文件内的sed命令
-r:支持正则表达式
-i:直接编辑源文件
sed常用的命令(编辑)
-d:删除
-a:新增,a的后面接字符串,加的字符串会下一行出现。
-i:插入,i后面接的字符串会出现在此行前出现。
-c:替换,把匹配到的行替换为指定的行。
-w:保存模式空间匹配到的行至指定文件。
-r:读取指定文件内容到当前文件被匹配到的行后面。
!:对没有匹配到的行进行编辑
-s:可以和正则表达式一起用,可以替换
示例:
1、在sed1文件第六行后添加一行,先看看原文件
2、被修改后的文件 动作a(在指定行后面加信息)
以行为单位进行增删
把sed1中4到6行删除 动作d(删除)
先cat sed1
在sed1第一行加上LPLPLP 动作i(在指定行前面加上指定信息)想在第几行前加就写ni
只列出1到3行
在第一行后面加上两行 \n用来换行
删除搜寻到的字符串,删除sed1中的bb
多点编辑把1-2行删除,把eeeeee替换为EEEEEE
动作c和s的的区别 c是全部替换 s是对行进行替换
在最后一行加上一行
只显示指定行(显示sed1中包含f的行)
本文出自 “clown” 博客,请务必保留此出处http://vclownv.blog.51cto.com/10273334/1728652
原文地址:http://vclownv.blog.51cto.com/10273334/1728652