2016-12-23 10 views
0

私たちのパーサーは、以下に示すように2つの\ n ...という証明書文字列しか受け入れません。シェルコマンドを使用して証明書ファイルを文字列に変換する n

-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA46ifqDzBpDol+KSQyjjrLWHZ1w2WgEdGB5q8RJqHI7rPkxAc9r9XI71ATxt/KAa156uX3SWxqEYsfxmTQ5AMEwkr0u0iB0B8Ed66M2NPE00DzOyJTpQVTazxvI2hHmuCLXaFz/HL6Kfzz1Q350wW5cY5nnp0/F6bcUlZl3kHDfu7zcSvD/LckWWiO3IgScW69BiBqTVEvUsK/LC/w7F1esqDf8gURuSyZYmg83+OLCPDqwn447YO9001cOtiVAbwCKTwUe89LGB/GtuvNkC8tmdDSP14dAcYPkoJ7418wnbgtUUWVYtt6WRGwfRIDxUnbTRzUjzFY6z4g31JsWZbHQIDAQAB\n-----END PUBLIC KEY----- 

awkまたはsedを使用して証明書ファイルを2つの\ n文字のみの文字列に変換する方法を理解しようとしています。

答えて

0

あなたは、おそらく完全にawkでこれを行うことができますが、私はので、ここでドアを使い果たし、私はもっと良いものを考える時間がありませんので、少しハックソリューションである必要があります:

echo -----BEGIN PUBLIC KEY----- 
awk '! /(BEGIN|END) CERTIFICATE/ {print}' ORS='' certificate 
echo -----END CERTIFICATE----- 

Iを誰かがより優雅な何かと一緒に来ることを確信しています。

0

certificateを証明書ファイル名に置き換えてください。

sed '1d;$d' certificate | tr -d '\n' | sed 's/^/-----BEGIN PUBLIC KEY-----\\n/' | sed 's/$/\\n-----END PUBLIC KEY---/' 
0

これを試してみてください:

sed 's/BEGIN[A-Z ][^-]*-----/&\\n/;s/-----END/\\n&/;' certificate 

は場所にファイルを編集する-iフラグを追加します。

sed -i 's/BEGIN[A-Z ][^-]*-----/&\\n/;s/-----END/\\n&/;' certificate 
関連する問題