我有一个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)
任何帮助将不胜感激。
尝试
$ 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
不允许)。