红联Linux门户
Linux帮助

高级 UNIX 工具(1)----sed

发布时间:2006-08-19 00:14:49来源:红联作者:fengmayi1
  有很多专门的书籍来介绍awk和grep,通常在这些书中,只是简要的介绍grep,因为awk在很多方面都是来源于sed和grep的,另外,在awk,sed和grep中,使用正则表达式(用于模式匹配)的方法也是类似的.
首先,正则表达式中应该注意的事项:
(1)正则表达式与shell使用的文件匹配模式不同.
(2)用单引号 ' 表示正则表达式.
sed的许多用法与ed相同.
可以用下面两种方式调用sed:
sed [-n][-e] 'command' filename(s)
sed [-n] -f scriptfile filename(s)
sed的第一种格式用于在命令行中执行命令.默认情况下,sed将显示所有行,-n 表示只需要打印p命令指定的行.第二种格式允许指定一个或多个包含编辑命令的脚本.下面是sed的两种不同格式中的三个选项进行总结:
-n 只打印用p命令指定的行
-e command -e后的参数是一个编辑命令
-f filename -f后的参数是包含编辑命令的文件
下面看几个例子:
sed -n 16,18p passwd.test 打印passwd.test的16到18行.
sed 16,18d passwd.test 删除passwd.test的16到18行.
sed '/bsh/ d' passwd.test 删除包含bsh的行.
sed '/bsh/ ld' passwd.test 删除除bsh行以外的行
前面仅仅用了sed中的一些很表面的命令,下面总结了sed的命令:
命令 说明
a 添加文本
b 转移到标签处
c 用文本替换行
d 删除当前文本缓冲区
i 插入文本
P 从模式空间开始打印,知道出现新行
r 读入模式
s 替换模式
y 转换字符
文章评论

共有 0 条评论