当我在 mac OS 中使用 sed 时,我不能使用这样的替代标志:
sed 's/xx/yy/3g' my.txt
这个命令的替代品是什么? 我不能在这里一起使用“3g”。此用例位于参考文档中。
当我使用 BSD sed 时,显示错误:
more than one number or 'g' in substitute flags
这可能对你有用(GNU sed):
sed 's/x/\ny/3;h;s/x/y/g;H;g;s/\n.*\n//' file
在要保留的事件后面放置一个唯一标记,将该行复制到保留空间 (HS),替换所有事件,然后将它们附加到副本中,并删除两个唯一标记之间的块。
大多数 sed 都应该支持此方法。如果您使用的 sed 不能处理
\n
,则使用唯一的字符串,例如@@a unique string @@