概述
sed是stream editor的简称,是一款功能强大的流式文本编辑器。由于sed是以行为单位进行编辑文件 , 因此也称为行编辑器。
sed由标准输入读取编辑文件,读入一行或指定行放到模式空间”pattern space”,然后将所有编辑指令逐一对模式空间的内容进行编辑,之后将结果输出到标准输出,同时清除模式空间。接下来再将下一行资料读入模式空间,如此重复之前的操作,直到最后一行,流编辑器停止。
默认情况下所有的输出行都被打印到屏幕上,源文件内容并没有改变,除非你使用重定向存储输出。
sed 可以配合正则表达式使用,对文件内容进行替换、删除、新增、选取特定行等功能,用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等,功能十分强大。
系统差异
linux 环境默认是 GNU sed, macOS 默认使用的 BSD sed。
macOS下sed总是会碰到一些奇怪的问题,或者查到命令执行无效,所以在macOS下最好安装gnu-sed,用gsed与linux下的sed是几乎一样的。
brew install gnu-sed
#然后设置到环境变量 .bash_profile 或 .zshrc 即可 PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"
|
语法
命令格式
sed [option] 'command' input_file
|