sed的使用

sed只是对缓冲区中原始文件的副本进行编辑,并不是编辑原始文件。因此,如果想要保存改动内容,需要将输出重定向到另外一个文件
 调用sed的三种方式,一种为Shell命令行方式,另外两种是将sed命令写入脚本文件,然后执行该脚本文件
sed [选项] sed的命令 输出文件    
sed [选项] -f     sed脚本文件C 输出文件
sed命令选项及其意义
-n #不打印所有行到标准输出
-e #表示将下一个字符串解析为sed编辑命令,如果只传递一个编辑命令给sed,-e选项可以省略
-f #表示正在调用的sed脚本文件

sed编辑命令

p #打印匹配行
= #打印文件行号
a\ #在定位行号之后追加文件信息
i\ #在定位行号之前出入文本信息
d #删除定位行
c\ #用新文本替换定位文本
s #使用替换模式替换相应模式
r #从另外本件中读文本
w #将文本写入一个文件
y #变换字符
q #第一个模式匹配完成后退出
{} #在定位执行的命令组
n #读取下一个输出行,用下一个命令处理新的行
h #将模式缓存区的文本复制到保持缓冲区
H #将模式缓冲区的文本追加到保持缓冲区

sed的一些常用操作

'/\.$/d'   #删除以句点结尾的行
'/abcd/d'   #删除包含abcd的行
's/[][][]*/[]/g'    #用一个空格替换掉两个以上的空格
's/^[][]*//g'   #将行首空格替换成空.即删除行首空格
's/\.[][]*/[]/g'    #删除句点后跟两个空格或更多的空格,并以一个空格替代
'/^$/d'    #删除空行
'1d'    #删除第一行
'$d'   #删除第一行
's/_*//g'   #删除横线----
's/^.//g'   #删除第一个字符
's/^.\///g'     #从路径中删除第一个/
's/[]/[ ]/g'    #删除所有的空格,并用tab键替代
's/^[ ]//g'     #删除行首所有的tab键
posted @ 2017-05-31 10:23  sujc-blogs  阅读(102)  评论(0编辑  收藏  举报