不是GNU sed。我有一系列makefile,我正在尝试统一修改。在每个makefile中,我都有一条注释,告诉我在哪里放置代码。
sed "/MULTI WORD COMMENT/a\
LINE 1\
LINE 2 $stuff $morestuff" "$file" >> "$file"_NEW
我想找到评论,然后在其后附加多行文字。有些行包含我想要扩展的shell变量。我想弄清楚的是,当我想要shell expansions时我需要使用"
并且要追加的每一行都应该有自己的行。
我收到错误告诉我用“\”终止“a”命令,但看起来我已经这样做了。我做错了什么?
示例输入
# MULTI WORD COMMENT
.SUFFIXES: .o .c
示例输出
# MULTI WORD COMMENT
LINE 1
LINE 2 ASDF GASIFJ
.SUFFIXES: .o .c
在这种情况下,stuff=ASDF
和morestuff=GASIFJ
。这些与我正在使用的makefile中的变量名称并不完全不同。
答案 0 :(得分:2)
由于您使用双引号需要转义两次,因此请使用:
sed "/MULTI LINE COMMENT/a\\
LINE 1\\
LINE 2 $stuff $morestuff" "$file" >> "$file"_NEW
PS:您的示例输入有MULTI LINE COMMENT
,但您的命令有MULTI WORD COMMENT