sed linux命令无法插入行[重复]

Posted

技术标签:

【中文标题】sed linux命令无法插入行[重复]【英文标题】:sed linux command unable to insert line [duplicate] 【发布时间】:2019-01-03 17:28:43 【问题描述】:

我怎样才能使这个正则表达式正常工作。正在添加行

LOGIN_SERVICE: '"https://dev-login-o365.grey.com/gp_loginservice/"',

在文件env.js我使用的是正则表达式:

sed -i '5i LOGIN_SERVICE: '"https://login.xxxx.com/server/"',' ./env.js

但是在左边添加不带引号和 3 个空格的值,如下所示:

【问题讨论】:

【参考方案1】:

使用不同的引用:

sed -i "5i LOGIN_SERVICE: '\"https://login.xxxx.com/server/\"'," env.js

或者按照下面有用的 cmets 的建议,将 sed 命令用单引号括起来:

sed '5i LOGIN_SERVICE: '\''"https://login.xxxx.com/server/"'\'',' env.js

【讨论】:

另外,'5i LOGIN_SERVICE: '\''"https://login.xxxx.com/server/"'\'',' - 这对于程序引用很有用,因为它只是 s.replace("'", "'\\''") 不要在脚本周围使用双引号,因为这样你会在 sed 甚至看到它之前将整个文本暴露给 shell 进行解释,所以如果/当你的文本包含字符时你会感到惊讶shell 将作用于(例如$)。只需像@o11c 建议的那样做sed -i '5i LOGIN_SERVICE: '\''"https://login.xxxx.com/server/"'\'',' ./env.js 谢谢,Ed 和@o11c 说的很对

以上是关于sed linux命令无法插入行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

尝试替换环境变量时,Linux sed命令无法正常工作[重复]

Linux自学笔记——sed命令

Linux--sed命令

Linux脚本在文件中插入新行[重复]

linux shell命令向文件内特定的行插入数据,如注释等

sed基本用法