Linux Sed在正则表达式中有空格

Linux Sed在正则表达式中有空格,linux,sed,Linux,Sed,我很难使用sed来替换 proxy: '' 与 归档 我有以下命令(见下文),但它给了我 proxy: https://link.com:8099'' 在url后面加上两个引号 sed 's@proxy: ''@proxy: 'http://link.com:8099'@'<test.txt > test1.txt sed's@proxy:''@proxy:'http://link.com:8099“@”test1.txt 感谢您的帮助 注意:我在RHEL中执行此操作,需要在

我很难使用sed来替换

proxy: ''

归档

我有以下命令(见下文),但它给了我

proxy: https://link.com:8099''
在url后面加上两个引号

sed 's@proxy: ''@proxy: 'http://link.com:8099'@'<test.txt > test1.txt
sed's@proxy:''@proxy:'http://link.com:8099“@”test1.txt
感谢您的帮助

注意:我在RHEL中执行此操作,需要在chef中执行此操作。

这应该可以:

echo "proxy: ''" |sed 's#\x27\x27#\x27https://link.com:8099\x27#g'
proxy: 'https://link.com:8099'
工作原理:
我们使用不同的分隔符
#
,因此不需要转义
/


我们使用十六进制ascii码代替一百万次转义到
'
,=
\x27

您可以使用
\'\'\'
指定双单引号
'

您可以执行以下操作:

sed -r 's/(proxy:\s+)('\'\'')/\1'\'https:\\/\\/link.com:8099\''/g' test.txt > test1.txt
第一组是
代理:
文本,后跟要替换的单引号

$ echo "proxy: ''" | sed -e "s@proxy: ''@proxy: 'http://blah'@"
proxy: 'http://blah'

我是否遗漏了问题中的某些内容?

我们的差异是几秒!!:)
$ echo "proxy: ''" | sed -e "s@proxy: ''@proxy: 'http://blah'@"
proxy: 'http://blah'