OSX目前从2005年起就带有FreeBSD sed。以下大多数差异也适用于其他BSD sed版本。
OS X的sed用法-E类
用于ERE和GNU sed用途-第页
.-E类
是的别名-第页
在GNU sed中(在4.2中添加,直到4.3才记录)。FreeBSD和NetBSD的新版本都支持-E类
和-第页
.OpenBSD sed仅支持-E类
.
-i“
适用于OS X的sed,但不适用于GNU sed。-我
与GNU sed、最新版本的NetBSD、OpenBSD配合使用塞德
,但不是OS X的sed。-i-e
两者都可以使用,但在FreeBSD的情况下塞德
使用备份原始文件-e(电子)
附加到文件名(并且不需要向传递多个表达式塞德
).
GNU sed解释如下转义序列\秒
,\t吨
,\n个
,\001
,\x01个
,\w个
、和\b条
.OS X的sed和POSIX sed仅解释\n个
(但不在的替换部分秒
).
GNU sed解释\|
,\+
、和\?
在BRE中,但OS X的sed和POSIX sed没有。\(
,\)
,\{
、和\}
是POSIX BRE。
GNU sed允许省略;
或换行符}
但OSX的sed没有。
我
(插入),一
(追加),以及c(c)
在OSX的sed和POSIX sed中,(change)后面必须跟一个反斜杠和换行符,但在GNU sed中不能跟。GNU sed在插入的文本后添加了一个缺少的换行符我
,一
,或c(c)
但OS X的sed没有。例如塞德1ia
是GNU的替代品sed$“1i\\na\n”
.
例如打印f a | sed-n p
在OS X的sed中添加了一个换行符,但在GNU sed中没有。
OS X的sed不支持我
(区分大小写)或M(M)
(多行)修改器。FreeBSD sed支持的更新版本我
.
OS X的sed不支持-秒
(--分开
),-u个
(--无缓冲的
),或-z(z)
(--空数据
).
GNU sed不支持的一个BSD选项是-一个
,这使得w个
附加到文件而不是截断文件。
不适用于OS X的sed的GNU sed命令示例:
sed/pattern/,+2d#类似“sed”/pattern/{N;N;d;}'`sed-n 0~3p#类似`awk NR%3==0`sed/pattern/Q#类似“awk”/pattern/{退出}1'`或'sed-n'/pattern/,$!p’`sed的/\b./\u&/g'#\u将下一个字符转换为大写sed的/^/\l&/'#\l将下一个字符转换为小写sed-i“1ecat file_to_prepend”file#e执行shell命令sed-n l0#0禁用包装