sed

维基百科,自由的百科全书
跳转至: 导航搜索
sed
啟發語言 Ed
影響語言 Chomski, Perl, AWK

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' - 在每一行后面增加两行空行

外部链接[编辑]