将一个划线员私钥转换为多行(原始)

时间:2019-09-10 15:59:40

标签: sed

我必须将RSA私钥转换为单行以存储在密码管理器(Passwordstate)中。我使用=SUMIF(<range you want to sum>, "<>" & <x>, <range you want to sum>)+ <x> * COUNTIF(<range you want to sum>, <x>) 转换为单行,并使用tr -d '\n' < id_rsa转换回原始多行。

在Ubuntu上可以转换回多行,但在Mac上则不能。为什么这在Macbook上不起作用

1 个答案:

答案 0 :(得分:1)

请尝试:

LF=$'\\\x0A'
cat id_rsa.line | sed -e "s/-----BEGIN RSA PRIVATE KEY-----/&${LF}/" -e "s/-----END RSA PRIVATE KEY-----/${LF}&${LF}/" | sed -e "s/[^[:blank:]]\{64\}/&${LF}/g"

LF=$'\\\x0A'
cat id_rsa.line | sed -e "s/-----BEGIN RSA PRIVATE KEY-----/&${LF}/" -e "s/-----END RSA PRIVATE KEY-----/${LF}&${LF}/" | fold -w 64

非GNU sed不会将替换中的“ \ n”解释为换行符。 解决方法是,您可以将变量分配给换行符并将其嵌入替换行中。
请注意,我保留了UUC的可读性: