我的变量颁发者和主题包含
发行者= C = IN,ST = TN,L = XYZ,O = ABC,OU = CA,CN = XYZ.com / EMAILADDRESS = XYZ @的Gmail 受试者= C = GB,ST =伦敦,L =伦敦,O = Global_Security,OU = IT,CN = example.comCA / EMAILADDRESS = ACL @ 123
我想分别用 xyz.conf 中的 subject 和 issuer 替换变量leftid
和leftca
我正在使用像这样的sed命令
sed -i -e '/leftid=/s/=.*/= '$subject'/' /etc/xyz.conf
和
sed -i -e '/leftca=/s/=.*/= '$issuer'/' /etc/xyz.conf
但我收到以下错误
sed:-e表达式#1,字符66:
的未知选项s' sed: -e expression #1, char 83: unknown option to
s'
有人可以帮忙吗?
答案 0 :(得分:0)
您的$issuer
变量在sed替换部分中展开,因此表达式变为:
sed -i -e '/leftca=/s/=.*/= 'C=IN,ST=TN,L=XYZ,O=ABC,OU=CA,CN=XYZ.com/emailAddress=xyz@gmail'/' /etc/xyz.conf
并且这不是正确的sed表达式,因为/
分隔符有4次出现。
总结你的sed命令是正确的,只需用你的issuer变量中不存在的东西来改变s替换命令分隔符,例如:
sed -i -e '/leftid=/ s|=.*|= '$subject'|' /etc/xyz.conf