首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用sed在匹配后追加多行(带有shell变量)

使用sed在匹配后追加多行(带有shell变量)
EN

Stack Overflow用户
提问于 2015-07-22 19:52:39
回答 1查看 978关注 0票数 2

不是。我有一个集合的制作文件,我试图统一修改。在每个makefile中,我都有一个注释,告诉我将代码放在哪里。

代码语言:javascript
运行
复制
sed "/MULTI WORD COMMENT/a\
LINE 1\
LINE 2 $stuff $morestuff" "$file" >> "$file"_NEW

我想找到注释,然后在它后面附加多行文本。有些行包含我想展开的shell变量。我所能知道的是,当我想要执行"时,我需要使用shell expansions,并且要追加的每一行都应该有自己的行。

我收到一个错误,告诉我用"\“终止"a”命令,但看起来我已经在这样做了。我做错了什么?

示例输入

代码语言:javascript
运行
复制
# MULTI WORD COMMENT
.SUFFIXES: .o .c

示例输出

代码语言:javascript
运行
复制
# MULTI WORD COMMENT
LINE 1
LINE 2 ASDF GASIFJ
.SUFFIXES: .o .c

在这种情况下,stuff=ASDFmorestuff=GASIFJ。这些与我正在使用的makefile中的变量名称并不完全不同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-22 20:15:18

由于您使用的是双引号,所以需要转义两次,所以请使用:

代码语言:javascript
运行
复制
sed "/MULTI LINE COMMENT/a\\
LINE 1\\
LINE 2 $stuff $morestuff" "$file" >> "$file"_NEW

PS:示例输入有MULTI LINE COMMENT,但命令有MULTI WORD COMMENT

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31572760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档