2017-02-22 86 views
-1
一个空间

我使用SED的一个文件来替换桑达有在正则表达式

proxy: '' 

proxy: 'https://link.com:8099' 

有困难

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

proxy: https://link.com:8099'' 

在url后面加上两个引号。

sed '[email protected]: ''@proxy: 'http://link.com:8099'@'<test.txt > test1.txt 

任何帮助表示赞赏。

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

回答

1

这应该工作:

echo "proxy: ''" |sed 's#\x27\x27#\x27https://link.com:8099\x27#g' 
proxy: 'https://link.com:8099' 

为什么它的工作原理:
我们使用不同的分隔符#所以我们不需要逃避/
而不是一百万逃离到''我们用十六进制ASCII其中的代码= \x27

0

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

你可以像下面这样:

sed -r 's/(proxy:\s+)('\'\'')/\1'\'https:\\/\\/link.com:8099\''/g' test.txt > test1.txt 

第一组是由单引号proxy:文本以下取代

+0

我们的区别是几秒钟! :) –

0
$ echo "proxy: ''" | sed -e "[email protected]: ''@proxy: 'http://blah'@" 
proxy: 'http://blah' 

难道我错过了什么问题?