【问题标题】:How to get a string in the output of curl command in Unix shell scripting?如何在 Unix shell 脚本中的 curl 命令的输出中获取字符串?
【发布时间】:2017-06-30 05:01:57
【问题描述】:

我希望削减输出中突出显示的任务编号。但是,正常的 grep 或 sed 命令或重定向到文本文件以获取所需的输出不起作用。由于 curl 在终端屏幕上书写,这些操作不起作用。请提出建议。

vcap@jumpbox-sagdf-staging:~ $ curl -v -s -k 'https://admin:88uudjdjd@10.19.1.1:25555/deployments/concourse/vms?format=full' * 在 DNS 缓存中找不到主机名

  • 正在尝试 10.19.1.1....

  • 连接到 10.19.1.1 (10.19.1.1) 端口 25555 (#0)

  • 成功设置证书验证位置:

  • CA 文件:无

    CApath:/etc/ssl/certs

  • SSLv3、TLS 握手、客户端问候 (1):

  • SSLv3、TLS 握手、服务器问候 (2):

  • SSLv3、TLS 握手、CERT (11):

  • SSLv3、TLS 握手、服务器密钥交换 (12):

  • SSLv3,TLS 握手,服务器完成 (14):

  • SSLv3、TLS 握手、客户端密钥交换 (16):

  • SSLv3,TLS 更改密码,客户端问候 (1):

  • SSLv3,TLS 握手,完成 (20):

  • SSLv3,TLS 更改密码,客户端问候 (1):

  • SSLv3,TLS 握手,完成 (20):

  • 使用 ECDHE-RSA-AES128-GCM-SHA256 的 SSL 连接

  • 服务器证书:

  • 主题:CN=导演

  • 开始日期:2017-06-20 13:19:23 GMT

  • 有效期:2019-06-20 13:19:23 GMT

  • 颁发者:CN=rootCA

  • SSL 证书验证结果:无法获取本地颁发者证书 (20),仍然继续。

  • 使用 Basic 和用户“admin”的服务器身份验证

GET /deployments/concourse/vms?format=full HTTP/1.1

授权:基本 YWRtaW46OHdId1lEVlIwakJCZ3c=

用户代理:curl/7.35.0

主机:10.19.1.1:25555

接受:/

>

  • 服务器 nginx 未列入黑名单

https://10.19.1.1/tasks/1017317

  • 与主机 10.19.1.1 的连接 #0 保持不变

【问题讨论】:

    标签: shell unix curl awk grep


    【解决方案1】:

    由于您要提取 Location: 响应标头最右侧斜线右侧的部分,我会使用这个:

    curl -so /dev/null -w "%{redirect_url}\n" $URL | sed 's:.*/::g'
    

    因此,对于您的原始 URL 用例,它看起来像(我在这个版本中添加了 -k):

    curl -kso /dev/null -w "%{redirect_url}\n" 'https://admin:88uudjdjd@10.19.1.1:25555/deployments/concourse/vms?format=full' | sed 's:.*/::g'
    

    (请注意,您已经在这里向全世界公开了您的用户名和密码......)

    【讨论】:

    • 感谢 Daniel 的输入...只是想知道在执行时我必须在 "%{redirect_url}\n" $URL 中替换什么?
    • 是的 .. 此处提供的详细信息是虚拟的 :) 我正在尝试在一个循环中检查两个这样的部署 .. for i in cf concourse do curl -kso /dev/null -w " %{redirect_url}\n" 'admin:88uudjdjd@10.19.1.1:25555/deployments/$i/vms?format=full' | sed 's:.*/::g' 完成但它没有提供输出。请提出建议。
    • $i 放在单引号内时,shell 不会扩展。使用双引号?
    猜你喜欢
    • 1970-01-01
    • 2014-02-01
    • 2013-05-03
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 2020-07-28
    • 1970-01-01
    相关资源
    最近更新 更多