首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个包含换行符的文件中读取gsed替换命令

从另一个包含换行符的文件中读取gsed替换命令
EN

Stack Overflow用户
提问于 2015-07-14 17:17:54
回答 1查看 506关注 0票数 0

这是一个有点奇怪的。在将云配置文件推送到服务器之前,我使用gsed编辑它。由于某种原因,当我试图将文件打印到替换字符串中时,gsed (gnu-sed)正在抛出一个错误。各种逃跑的方法似乎行不通,这是相当令人沮丧的。有人能看到这里出了什么问题吗?

  1. 将证书文件读入变量 CERT=cat ../$1/tmp/$1-cert.csr | while read i; do echo $i; done
  2. 在云配置文件中替换: gsed -i“/写_文件:/a\- path: /home/core/$1-cert.csr\n权限: 0755\n所有者:core\n printf '%s\n' \"$CERT\"”./$1/tmp/cloud-config.yaml

错误:

代码语言:javascript
复制
gsed: -e expression #1, char 168: unknown command: `M'

M恰好是cert文件第二行中的第一个字符:

代码语言:javascript
复制
-----BEGIN CERTIFICATE REQUEST-----
MIICvjCCAaYCAQAweTELMAkGA1UEBhMCVUsxFzAVBgNVBAgMDkdyZWF0ZXIgTG9u
EN

回答 1

Stack Overflow用户

发布于 2015-07-22 11:51:19

最后我使用了awk:

代码语言:javascript
复制
awk '/write_files:/{print $0 RS "- path: /home/core/certs/'"$1"'-cert.csr" RS "  permissions: 0755" RS "  owner: core:core" RS "  content: |"; while(getline line<"../'"$1"'/tmp/'"$1"'-cert.csr"){print "    "line};next}1' ../$1/tmp/cloud-config.yaml > swap.txt && mv swap.txt ../$1/tmp/cloud-config.yaml
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31413238

复制
相关文章

相似问题

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