用 SSL 证书内容替换字符串时出现问题
Problem with replacing a string with SSL cetificate content
我需要用以下证书内容替换文件中的字符串,并且需要采用这种格式。我无法在 bash.
中使用 sed 执行此操作
"-----BEGIN CERTIFICATE-----/r/n"
"MIIDazCCAlOgAwIBAgIUb14HAcAizLZ3jFxFhAQHLdsCWI0wDQYJKoZIhvcNAQEL/r/n"
"BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM/r/n"
"GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjAyMTQxNzAxMTBaFw0yNzAy/r/n"
"MTMxNzAxMTBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw/r/n"
"HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB/r/n"
"AQUAA4IBDwAwggEKAoIBAQC55VnblFue90NYNhz15aQBWsZ5FC6EXZibiHwKnE13/r/n"
"j0pCDxrY6oxia6Zz7pZcFyRYrQ4Gd/nconYs5lreijxErG30HgX+owdYeW1sdhTW/r/n"
"xyA1hGPQFmMAxs29+5siiZz08QRrEuKDsYqvqQa0Zqrw0hqNVD5Vu74y0U8k12Y0/r/n"
"7kCxQ1GbkZJ4hsVaMOvbIl061f+Uk6McUKraXdM45AsgBGZFBVuzrR3QeAnvuIXH/r/n"
"9sMi4vpzBQI1RGaZME1jn4nE5Gy3KM4tn99h4of5ei78iViNoB1ww9orYz2xqnKn/r/n"
"HT0Z+m0X94RzAXXAxBW/a7TC8miNn3b3c4hUx/J7rXq3AgMBAAGjUzBRMB0GA1Ud/r/n"
"DgQWBBQisnLWumDdji5PGyhgpz+NjNst8jAfBgNVHSMEGDAWgBQisnLWumDdji5P/r/n"
"Gyhgpz+NjNst8jAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBi/r/n"
"O4cYreKRE+xHprpcBNC3MZh/N1W1rbyAZgoJ3Rg1LkAfjK3gWyu++kEEJ7kENkyS/r/n"
"YaVhJ9lESwLIzhTwnk4ssu0aGtlW2jRktA2yAwaeqbAMbYKdNVGGR/KtXKufM4O6/r/n"
"CKDSyNCxkpyx1j1bOAkv3XUYLfFo9Ze1eGGOltgWvwfogLhGoH+xTk+LImyBHBE1/r/n"
"5WtfhV0B1+V1hxX1uAuuzleiOfCJnGnSny+9EaQNtTuoo20te1VJbkzh11gIQvoc/r/n"
"pOMSjWAZSSsK/gEI8rpDZwCR34FJM4iMoiYvFnBdwLX1wxXfKyEqfyQtD9nwKt4J/r/n"
"DyOZAEmx+0JxTALodX3V/r/n"
"-----END CERTIFICATE-----/r/n"
我将其存储到如下所示的变量中,并尝试使用如下所示的 sed 命令进行替换。
- export mycert=$(cat mycert.pem)
- sed "s/DUMMY/$mycert/g" 测试文件
我收到如下错误:
sed:-e 表达式 #1,字符 37:`s' 的未知选项
sed:-e 表达式 #1,字符 39:未终止的 `s' 命令
我几乎尝试了所有我知道的组合。运气不好
请试一试:
cat mycert.pem | sed -i -e 's/^/"/' | sed -i -e 's/.$/\/r\/n"/'
使用 GNU sed
:
mycert=$(sed '$!s/$/\/' mycert.perm)
sed "s=DUMMY=$mycert=" testfile
- 使用 sed 转义替换中的新行,最后一行除外,它被命令 sub 删除。
- 这些将用于替换字符串(因为它们被转义)。
- 分隔符改为
=
,不冲突
我需要用以下证书内容替换文件中的字符串,并且需要采用这种格式。我无法在 bash.
中使用 sed 执行此操作"-----BEGIN CERTIFICATE-----/r/n"
"MIIDazCCAlOgAwIBAgIUb14HAcAizLZ3jFxFhAQHLdsCWI0wDQYJKoZIhvcNAQEL/r/n"
"BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM/r/n"
"GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjAyMTQxNzAxMTBaFw0yNzAy/r/n"
"MTMxNzAxMTBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw/r/n"
"HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB/r/n"
"AQUAA4IBDwAwggEKAoIBAQC55VnblFue90NYNhz15aQBWsZ5FC6EXZibiHwKnE13/r/n"
"j0pCDxrY6oxia6Zz7pZcFyRYrQ4Gd/nconYs5lreijxErG30HgX+owdYeW1sdhTW/r/n"
"xyA1hGPQFmMAxs29+5siiZz08QRrEuKDsYqvqQa0Zqrw0hqNVD5Vu74y0U8k12Y0/r/n"
"7kCxQ1GbkZJ4hsVaMOvbIl061f+Uk6McUKraXdM45AsgBGZFBVuzrR3QeAnvuIXH/r/n"
"9sMi4vpzBQI1RGaZME1jn4nE5Gy3KM4tn99h4of5ei78iViNoB1ww9orYz2xqnKn/r/n"
"HT0Z+m0X94RzAXXAxBW/a7TC8miNn3b3c4hUx/J7rXq3AgMBAAGjUzBRMB0GA1Ud/r/n"
"DgQWBBQisnLWumDdji5PGyhgpz+NjNst8jAfBgNVHSMEGDAWgBQisnLWumDdji5P/r/n"
"Gyhgpz+NjNst8jAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBi/r/n"
"O4cYreKRE+xHprpcBNC3MZh/N1W1rbyAZgoJ3Rg1LkAfjK3gWyu++kEEJ7kENkyS/r/n"
"YaVhJ9lESwLIzhTwnk4ssu0aGtlW2jRktA2yAwaeqbAMbYKdNVGGR/KtXKufM4O6/r/n"
"CKDSyNCxkpyx1j1bOAkv3XUYLfFo9Ze1eGGOltgWvwfogLhGoH+xTk+LImyBHBE1/r/n"
"5WtfhV0B1+V1hxX1uAuuzleiOfCJnGnSny+9EaQNtTuoo20te1VJbkzh11gIQvoc/r/n"
"pOMSjWAZSSsK/gEI8rpDZwCR34FJM4iMoiYvFnBdwLX1wxXfKyEqfyQtD9nwKt4J/r/n"
"DyOZAEmx+0JxTALodX3V/r/n"
"-----END CERTIFICATE-----/r/n"
我将其存储到如下所示的变量中,并尝试使用如下所示的 sed 命令进行替换。
- export mycert=$(cat mycert.pem)
- sed "s/DUMMY/$mycert/g" 测试文件
我收到如下错误: sed:-e 表达式 #1,字符 37:`s' 的未知选项
sed:-e 表达式 #1,字符 39:未终止的 `s' 命令
我几乎尝试了所有我知道的组合。运气不好
请试一试:
cat mycert.pem | sed -i -e 's/^/"/' | sed -i -e 's/.$/\/r\/n"/'
使用 GNU sed
:
mycert=$(sed '$!s/$/\/' mycert.perm)
sed "s=DUMMY=$mycert=" testfile
- 使用 sed 转义替换中的新行,最后一行除外,它被命令 sub 删除。
- 这些将用于替换字符串(因为它们被转义)。
- 分隔符改为
=
,不冲突