在mac上用sed中的字符串替换换行符

qaz*_*988 4 regex macos sed

在文件中,我需要用字符串替换所有换行符(不是转义序列 '\n',而是实际的换行符)。我在 SO 上发现的所有问题都是相反的;即用文字换行符替换字符串。这是在 Mac 上。

我试过以下

sed -i '' 's/\
/STOP/g' file.txt
Run Code Online (Sandbox Code Playgroud)

但它给了我一个“未终止的替代模式”错误。

anu*_*ava 5

虽然也可以使用它来完成,sed但这样做awk要简单得多:

awk -v ORS='STOP' '1' file
Run Code Online (Sandbox Code Playgroud)

这会将输出记录分隔符更改为STOP而不是 default \n

更新:这是在 OSX 上执行相同操作的 sed 版本:

sed -i.bak -n -e 'H;${x;s/\n/STOP/g;p;}' file
Run Code Online (Sandbox Code Playgroud)