如何在MacOS上使用sed添加新行?

cod*_*ons 17 sed

我想在它们之间添加一条新线 </a> and <a><a>

</a><a><a>

</a>
<a><a>
Run Code Online (Sandbox Code Playgroud)

我这样做了

sed 's#</a><a><a>#</a>\n<a><a>#g' filename 但它不起作用.

小智 30

由mac提供的两个解释:

  1. echo foo | sed 's/f/f\'$'\n/'
  2. echo foo | gsed 's/f/f\n/g'

  • ELI5?请?我不明白为什么我们在美元符号之前逃脱单一报价. (4认同)
  • 这必须标记为最合适的答案. (2认同)
  • 如何在mac上安装gsed? (2认同)
  • (1)的工作方式是将2个字符串连接起来,第一个字符串字面意思是“ s / f / f \”,第二个字符串之前的美元符号将“ \ n”扩展为实际的换行字符。这样,`sed`接收以下字符串:`s / f / f \↵/`。 (2认同)
  • 我被`brew install gnu-sed`所吸引。 (2认同)

Kev*_*vin 18

有些seds,特别是Mac/BSD,不能解释\n为换行符,你需要使用实际的换行符,前面加一个反斜杠:

$ echo foo | sed 's/f/f\n/'
fnoo
$ echo foo | sed 's/f/f\
> /'
f
oo
$ 
Run Code Online (Sandbox Code Playgroud)