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键