gpt4 book ai didi

awk - 使用 grep/awk/sed 在某个单词后查找整个文本

转载 作者:行者123 更新时间:2023-12-02 18:38:50 25 4
gpt4 key购买 nike

我们使用 Hashicorp 金库来存储证书和 key 。我想检索存储在保管库中的证书/ key 。使用Vault API命令,我得到以下输出

vault get /mysecret.key
output:
====== Data ======
Key Value
--- -----
password -----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-----END RSA PRIVATE KEY-----

预期输出:

-----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-----END RSA PRIVATE KEY-----

尝试过:

vault get /mysecret.key | sed -n '/^password/,$p'

password -----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
-----END RSA PRIVATE KEY-----

如何使用 grep/awk/sed 获得预期的输出?

最佳答案

根据您显示的尝试,请尝试以下代码。

your_API_command | 
awk -v RS= 'match($0,/-+BEGIN.*END RSA PRIVATE KEY-+/){print substr($0,RSTART,RLENGTH)}'

解释:简单的解释是,运行 API 命令并将其输出作为标准输入发送到 awk 命令。使用 nullify RS 然后使用 match 函数匹配 - 中的字符串(出现 1 次或多次),然后使用 BEGIN 直到字符串 END RSA PRIVATE KEY 后跟 1 次或多次 -

第二个解决方案:这里对第一个解决方案进行了一些调整,用 GNU awk 编写和测试。

your_API_command | awk -v RS='-+BEGIN.*END RSA PRIVATE KEY-+' 'RT{print RT}' 

关于awk - 使用 grep/awk/sed 在某个单词后查找整个文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68345833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com