2016-12-23 1 views
0

Наш парсер принимает только строки сертификата с двумя \ n ..., как показано ниже.Команда оболочки для преобразования файла сертификата в строку только с двумя n

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

Я пытаюсь понять, как использовать AWK или СЭД, чтобы преобразовать файл сертификата в строку только с двумя \ п символов.

ответ

0

Вы, вероятно, может сделать это полностью в awk, но я должен бежать в дверь, так вот немного более Hacky решение, так как у меня нет времени, чтобы думать о чем-нибудь лучше:

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 

 Смежные вопросы

  • Нет связанных вопросов^_^