首页 > 解决方案 > 如何使用新行进行 BSD sed 替换

问题描述

我有一个 sed 命令如下:

sed -i 's/),(/),\n(/g' myfile

我的文件是这样的:

(237),(238)

预期结果是:

(237),
(238)

实际结果是:

(237),n(238)

我尝试了很多写新行的方法,但都失败了。是否有可能得到预期的结果?

我发现这GNU sed行得通,但BSD sed不是。

标签: sednewline

解决方案


对于BSD sed,我们可以将换行写成$'\n',所以命令应该是:

/usr/bin/sed 's/),(/),\'$'\n''(/g' myfile

推荐阅读