Makefile 中的多行 sed

The*_*heo 7 make sed

我有一个sed要在Makefile. 它在终端中工作。命令是

sed -n '/[{]/,/[}]/{
p
/[}]/a\
 //end of block matching brace
}' myfile.txt
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误消息make

/bin/sh: 2: Syntax error: Unterminated quoted string
Run Code Online (Sandbox Code Playgroud)

如果我添加反斜杠或将所有内容放在一行上,我会得到

sed: -e expression #1, char 14: extra characters after command
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

Rud*_*diC 3

尝试

$ sed -n -e '/[{]/,/[}]/{p; /[}]/ a\ //end of block matching brace' -e' }' file
{sdfg
If I add backslashes or place everything on one line I get
df }
 //end of block matching brace
Run Code Online (Sandbox Code Playgroud)

请注意-e所需的两个(表达式)选项,因为您需要终止附加文本。并非所有sed版本都允许在同一行中附加文本(我的 GNUsed允许,我的 FreeBSDsed不允许)。