sed命令

sed(stream editor)流编辑器,它是一个非交互式文本编辑器,客队文本文件和标准输入进行编辑,是将一系列编辑命令作用用一批文本文件的理想工具。

sed使用于以下三种场合:

编辑相对交互式文本编辑器而言太大的文件。

编辑命令太复杂,在交互式文本编辑器中难以输入的情况。

对文件扫描一遍,但是需要执行多个编辑函数的情况。

注意:sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件。因此,如果需要保持改动内容,需要将输出重定向到另一个文件。

sed [选项] 'sed命令' input->file > result->file

1、sed命令常用选项

选项 意义
-n 不打印所有行到标准输出
-e 表示将下一个字符串解析为sed编辑命令
-f 表示正在调用sed脚本文件

2、sed命令定位文本的方法

x: 为指定行号

x,y: 指定从x到y 的行号

/pattern/: 查询包含模式的行

/pattren/pattern/: 查询包含两个模式的行

/pattern/,x:  从与pattern的匹配行到x号行之间的行

x,/pattern/:  从与x号行到pattern的匹配之间的行

x,y:  查询不包含x和y行号之间的行

3、sed编辑命令

p:  打印匹配航

=:  打印文件行号

a\: 在定位行号后追加文本信息

i\:  在定位行号之前定位文本信息

d:  删除定位行

c\: 用新文本替换定位文本

s: 使用替换模式替换相应模式

r: 从另一个文件中读文本

w: 将文本写入到一个文件

y: 变换字符

q: 第一个模式匹配完成后退出

{}: 定位执行的命令组

n: 读取下一个输入行,用下一个命令处理新的行

h: 将模式缓冲区的文本复制到保持缓冲区

H: 将模式缓冲区的文本追加到保持缓冲区

x: 互换模式缓冲区和保持缓冲区的内容

posted on 2012-12-12 21:24  comeby  阅读(318)  评论(0编辑  收藏  举报