sed:-e表达式#1,字符66:s'的未知选项;
我的变量和主题包含 issuer=C=IN,ST=TN,L=XYZ,O=ABC,OU=CA,CN=XYZ.com/emailAddress=xyz@gmail 主题=C=GB,ST=London,L=London,O=Global_Security,OU=IT,CN=example.comCA/emailAddress=acl@123 我想用xyz.conf中的subject和issuer分别替换变量sed:-e表达式#1,字符66:s'的未知选项;,sed,Sed,我的变量和主题包含 issuer=C=IN,ST=TN,L=XYZ,O=ABC,OU=CA,CN=XYZ.com/emailAddress=xyz@gmail 主题=C=GB,ST=London,L=London,O=Global_Security,OU=IT,CN=example.comCA/emailAddress=acl@123 我想用xyz.conf中的subject和issuer分别替换变量leftid和leftca 我使用sed命令,就像这样 sed -i -e '/leftid=/
leftid
和leftca
我使用sed命令,就像这样
sed -i -e '/leftid=/s/=.*/= '$subject'/' /etc/xyz.conf
及
但是我得到了以下错误
sed:-e表达式#1,字符66:s的未知选项sed:-e
表达式#1,字符83:未知的
s选项
有人能帮忙吗?您的
$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命令是正确的,只需将s substitution命令分隔符更改为issuer变量中不存在的内容,例如:
sed -i -e '/leftid=/ s|=.*|= '$subject'|' /etc/xyz.conf
为sed s命令选择不属于字符串一部分的分隔符。两个字符串都有。这是否回答了你的问题?
sed -i -e '/leftid=/ s|=.*|= '$subject'|' /etc/xyz.conf