阅 读 文 章

SA118翻译(11)

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(hfzheng) | 时间:2007-05-27 | 浏览:人次 ]


第十二章 sed和awk介绍
翻译:hfzheng
hfzheng@sohu.com
转载请保留此信息
流编辑器
sed程序(或流编辑器)用于编辑文件中的数据,而无须使用交互式编辑器如vi打开。你可以在命令行方式下对一个文件进行编辑和修改,默认情况下,输出送到屏幕上。可以快速完成重复工作。
Sed编辑器不改变源文件的内容,要保存输出,需要重定向到一个新文件中。
该编辑器最常用于对多个文件做相同的修改,也用于阅读管理员需要的脚本。
命令格式
sed  [options]  [address]  command  files  [>;newfile]
sed命令也可以用在管道中,例如:
ls –l | sed
选项(options):
选项用于控制sed的行为,最常用的选项是:
1、-e:允许在同一命令行进行多个编辑;
正则表达式概述
和grep命令相类似,sed使用许多特殊元字符来控制搜索模式。
下面描述了sed中使用的有用的正则表达式的元字符:
元字符目的 示例   结果
^行开始标识符‘^pattern’匹配所有以pattern开头的行
$行结束标识符‘pattern$’匹配所有以pattern结束的行
.匹配一个字符‘p…..n’匹配所有包含有以p开头后跟五个字符,紧接着跟一个字符的行
*[a-z]*匹配小写字符
[]匹配模式中的单个字符‘[pP]attern’匹配包括pattern和Pattern模式的行
[^]匹配不在模式中单个字符‘[a^m]attern’匹配以a到m结尾attern的所有行
其他说明同grep命令。
使用流编辑器
使用d命令删除一行
下面的例子显示了sed如何搜索包含有指定pattern的行,并删除改这些行。
1、在文件中搜索指定模式,并删除所有包含该模式的行,源文件不会被修改:
sed ‘/pattern/d’ filename
例如从文件/etc/group中删除所有包含了模式root的行:
$ sed ‘/root/d’ /etc/group
下例显示了如何删除ls命令的输出中包含有3的行:
$ ls –l | sed ‘/3/d’
2、删除文件中的指定行,结果显示在屏幕上,源文件不会被修改:
sed  ‘#,#d’  filename(删除行#到行#)
sed  ‘#d’  filename(只是删除行#)
sed ‘#,$d’  filename(删除行#直到最后一行)
sed  ‘$d’  filename(只删除最后一行)
例如:
$ ls –l | sed ‘5, $d’ >; new.file
$ cat new.file
使用p命令打印行
默认情况下,sed打印所有行到标准输出,如果找到模式pattern,sed在输出中打印重复行,至于文件中的其他行,直接输出。
$ sed ‘/Dante/p’ dante
在上例中,默认情况下,sed打印所有的行到标准输出,如果找到模式Dante,sed在输出中打印重复行,文件中的其他行直接输出。
使用-n选项可以抑制带p命令的sed的默认操作,例如:
$ sed –n ‘/Dante/p’ dante
在上例中,只打印包含有模式Dante的行
在每行的结尾放置字符
下面的示例显示了如何在行结尾添加字符。
要在每行的结尾添加字符串并把结果显示在标准输出中,执行下面的命令:
$ ls –l | sed ‘s/$/ EOF/’
修改数据中的空格为冒号
要搜索一个或多个空格,并用一个冒号来代替所有发现的空格,执行以下命令:
$ ls –l | sed ‘s/ */:/g’
sed多编辑
下面显示了sed在同一命令行中如何实现多编辑
$ ls –l >; file.3
$ cat file.3
$ sed –e ‘s/dante/DANTE/g’ –e ‘s/poet/Poet/g’ filename
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 翻译 sed 命令 awk 文件 输出 一个 ls 使用 数据 字符

上一篇:SA118翻译(10)

下一篇:SA118翻译(12)

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.