Fad*_*adi 5 sed awk text-processing
我有一个 .pem 文件,经过一些格式化后,它显示如下:
-----BEGIN
RSA
PRIVATE
KEY-----
MIIEogIBAAKCAQEAoK3D4mMIRnzPaYqHidgpBnDDzLlcYYd0GoB0pQGyGSHDW7KO3K+VeJP90GhE
ZTEWJLp2N5DR/KT+5Vg7cgdx/GCCrnlbW0McP/IvkYAuWCgbzoXH9eE+kDRtAmurBYCk7OTOwQ26
..........................LONG LONG LONG KEY................................
QRRLFsXua9spUh0yPd163IZStKZMhZBPJfMaqbi1WF+j21DdYyS0qpaZQRjFzRLvGuXeGLZG/COD
ip10XRJMMXY0m14bqOTcqKTya/5PTJIjDWC22+soIjLy0ZjWKo9n05Oal2t4q35kbos=
-----END
RSA
PRIVATE
KEY-----
Run Code Online (Sandbox Code Playgroud)
我显然需要像:
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAoK3D4mMIRnzPaYqHidgpBnDDzLlcYYd0GoB0pQGyGSHDW7KO3K+VeJP90GhE
ZTEWJLp2N5DR/KT+5Vg7cgdx/GCCrnlbW0McP/IvkYAuWCgbzoXH9eE+kDRtAmurBYCk7OTOwQ26
..........................LONG LONG LONG KEY................................
QRRLFsXua9spUh0yPd163IZStKZMhZBPJfMaqbi1WF+j21DdYyS0qpaZQRjFzRLvGuXeGLZG/COD
ip10XRJMMXY0m14bqOTcqKTya/5PTJIjDWC22+soIjLy0ZjWKo9n05Oal2t4q35kbos=
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
我如何使用awk或来做到这一点sed?
我在网上找到的所有教程都展示了如何针对整个文本或一种aaaabbbaaacccc我觉得令人困惑的模式来做这件事。
我试过这样的事情:
tr ' ' '\n' < test.pem | awk '/BEGIN\nRSA\nPRIVATE\n$/ { printf("%s\t", $0); next } 1' > test-format.pem
Run Code Online (Sandbox Code Playgroud)
但那失败了。
我不知道这是否重要,但我正在docker 容器中的 shell#!/bin/sh脚本中执行此操作python:3.5-alpine。
任何帮助是极大的赞赏。
cuo*_*glm 12
一种方式sed:
sed -e '/^---/ {
:1
$!N
s/\n/ /
/---$/!b1
}' <file
Run Code Online (Sandbox Code Playgroud)
这种方法可以直接完成工作:
---,则输入代码块1N如果当前行不是最后一行,我们读取输入的 ext 行$\n用空格---,则中断!循环,否则重新开始循环b1| 归档时间: |
|
| 查看次数: |
2779 次 |
| 最近记录: |