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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章