在脚本中使用 OS X 的 sed 查找字符串并在其下方附加一行,包括换行符

Mic*_*ott 4 sed macos

我了解到 OS X 中包含的 BSD 版本的 sed 没有提供一种直观的方式来添加换行符。我找到了一些关于它的注释,但我还不明白,如何扩展示例来解决我的问题。

我需要在一个文件中添加几行,发现我添加的行不包含换行符。

我的 shell 脚本目前包含以下内容:

sed '/match string/  a\
newline string' ./inputfile > ./outputfile
Run Code Online (Sandbox Code Playgroud)

而且,我正在尝试应用我在 Mac OS X 上的 sed 中找到的新提示

Mic*_*ott 5

没关系。在重新格式化此问题的代码部分时,解决方案变得清晰:

我发现以下内容正是我所需要的:

sed '/match string/  a\
newline string \
' ./inputfile > ./outputfile
Run Code Online (Sandbox Code Playgroud)

  • 要在单行上执行此操作,您可以使用 ANSI-C 引用来取消转义“\n”。换行符之前需要额外的反斜杠。`回显 $'111\n333' | sed $'/111/a\\\n222\\\n'`。 (2认同)