MSN: Phenzer@hotmail.com 欢迎加为好友讨论测试

linux下使用最广泛的命令之一:sed(基础篇)

上一篇 / 下一篇  2010-11-09 11:07:05 / 个人分类:Linux

 sed也是linux中使用最广泛的命令之一。它也是对来自键盘、文件重定向、字符串或变量,或者一个管道的文本的副本进行过滤的工具。必须要明确的是:sed并不是操作初始化文件,而是它的一个拷贝,然后所有的改动如果没有重定向到一个文件的话,将输出到屏幕。

一、sed读取数据过程
sed从输入文件的一个文本行或者从标准输入的几种格式中读取数据,将之拷贝到一个编辑缓冲区,然后读取命令行或者脚本的第一条命令,并使这些命查找模式或定位行号来编辑它。重复此过程直到结束

二、调用sed
调用sed有三种方式:
(1)在命令行输入命令:sed [选项] sed命令   输入文件
(2)将sed命令写入脚本文件,然后调用sed:sed [选项] -f  sed脚本  输入文件
(3)将sed命令写入脚本文件,并使sed脚本(第一行具体sed命令解释器)可执行:sed脚本文件 [选项] 输入文件
三种方式中提到的输入文件如没有被指定,sed就从标准输入中接受输入,一般是键盘或重定向结果。

1.保存sed的输出
由于不接触初始化文件,若想保存改动的内容,可以将所有输出重定向到一个文件。例如sed 'sed-command' input-file >output-file
2.sed在查询文本的方式
sed在浏览输入时,缺省从第一行开始,有2中定位文本的方式:
(1)使用行号,可以是一个简单的数字,也可以是一个行号范围
(2)使用正则表达式
sed在文件中定位文本的方式
----------------------------------------------------------------------------------
xx为一行号,如4
x,y表示行号从x到y
/pattern/查询符合模式的行.如/test/或/[0-9]/
/pattern/pattern/查询包含2个模式的行.如/Apple/apples/
/pattern/,x在给的那个行号上查询符合模式的行.如/ribbon/,3
x,/pattern/通过行号和模式查询匹配行.如3,/vdu/
x,y!查询不包含指定行x和y的行.1,2!
---------------------------------------------------------------------------------
3.sed的编辑命令
---------------------------------------------------------------------------------
p 打印匹配行
= 显示文件行号
a \ 在定位行号后附加新文本信
i \ 在定位行号后插入新文本信
d 删除定位行
c \ 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件中读文本
w 写文本到一个文件
q 第一个模式匹配完成后推出或立即推出
l 显示与八进制ASCII代码等价的控制字符
---------------------------------------------------------------------------------

TAG: sed

 

评分:0

我来说两句

Open Toolbar