sed命令详解

来源:互联网 发布:华为网盘网络连接失败 编辑:程序博客网 时间:2024/06/02 02:17
sed 简介


sed(意为流编辑器,源自英语“stream editor”的缩写)是Unix常见的命令行程序。
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' - 在每一行后面增加两行空行


实例说明
印出 white.dat 档内含有 "white"字串的资料行 , 其命令如下:


sed -n -e '/white/p' white.dat


上面命令中 , 选项 -n 与编辑指令 /white/p (参照[section4.6]) 一起配合控制输出。其中 , 选项 -n 将输出控制权移给编辑指令;
/white/p 将资料行中含有 "white" 字串印出萤幕。
原创粉丝点击