Chinaunix

标题: sed [打印本页]

作者: feiyang10086    时间: 2012-02-25 18:55
标题: sed

sed









sed(意为流编辑器,源自英语“stream editor”的缩写)是Unix常见的命令行程序。sed 用来把文档或字符串里面的文字经过一系列编辑命令转换为另一种格式输出。sed 通常用来匹配一个或多个正则表达式的文本进行处理。

分号(;)可以用作分隔命令的指示符。尽管sed脚本固有的很多限制,一连串的sed指令加起来可以编程像 仓库番、快打砖块、甚至俄罗斯方块等电脑游戏的复杂程序。



常用的sed命令
■/模式/p - 印出所有匹配“模式”的行
■/模式/d - 删除所有匹配“模式”的行
■s - 替换字符串
■s/模式/替换文字/ - 将匹配“模式”的行转换成“替换文字”
■s命令预设只替换每行匹配的第一串文字,也就是说,若每行里有多个匹配该模式的字符串,后面的将不会被s转换。在这个情况可以用g命令来替换所有匹配的文字,如下:
■s/模式/替换文字/g - 将所有匹配“模式”的字符串转换成“替换文字”

命令行选项
■-f - 按照指定的sed脚本里面的命令来进行转换
■-i - 表示将转换结果直接插入文件中(若不用-i,一般sed命令不会改变原文档里的内容,而只会输出到命令行。当然命令行输出的内容也可以用“>”转存到另外一个文件里。)
■-e - 表示在e后面的文字是正则表达式。有的版本不需要加注e选项也同样可以在命令中使用正则表达式。

其他命令
■sed G - 在每一行后面增加一空行
■sed 'G;G' - 在每一行后面增加两行空行

作者: 健康木乃伊    时间: 2012-02-25 18:55
谢谢分享
作者: wang1352083    时间: 2013-12-01 17:09
学习了.最近要用sed和awk,期待经典扫盲贴链接
作者: wenhq    时间: 2013-12-01 20:43
shell 13问加sed awk 101完全让你成为高手




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2