【问题标题】:How to use Grep | awk to get nid from Set-Cookie?如何使用Grep | awk 从 Set-Cookie 中获取 nid?
【发布时间】:2017-10-13 08:11:27
【问题描述】:

我在使用 Grep 和 awk 时遇到了麻烦。我需要从 curl 中获取 nid,我发现 nid 位于 Set-Cookie。 但是当我调用它时,nid 没有出现

这里是我使用的代码

resp=`curl -s -i "https://xxxxxx.com/signup/account?"`
nid="("$resp" | grep -Ei0 "Set-Cookie: nid=" | awk -F[=,] '{print $1}' | xargs)"

nid = $nid

如何解决?

【问题讨论】:

    标签: bash curl cookies awk grep


    【解决方案1】:

    脚本中有几个语法错误。 它也过于复杂。 所以与其纠正每一个错误, 我建议一种更简单的方法。

    您实际上不需要grep,因为awk 可以自行过滤。 更简单、更快捷的解决方案:

    nid=$(curl -s -i "https://xxxxxx.com/signup/account?" | awk -F= '/^Set-Cookie:/ { print $2; exit }')
    

    即:

    • /^Set-Cookie:/ 表示匹配以“Set-Cookie:”开头的行
    • -F= 是使用= 作为字段分隔符
    • print $2 是打印第二个字段。给定=作为字段分隔符,这个值应该在nid=...的右边
    • 打印后我们exit,因为找到了我们想要的,剩下的内容不用解析了

    【讨论】:

    • 非常感谢兄弟,这很好。我们可以在bash中使用一些脚本自动生成nid吗?
    • 如果我们访问某个网站,我会生成唯一的 nid 并存储在 cookie 中,对吗?我的问题是可以使用某些脚本自行生成的唯一 nid 吗?我在网站上读过一篇文章,nid 可以使用 js 自动生成。这是真的吗?
    • @AdrianBondanAdiPrakasa 似乎答案取决于您使用的网站的具体情况。你会在他们的文档中找到答案。
    猜你喜欢
    • 2012-09-02
    • 1970-01-01
    • 2021-09-29
    • 2013-03-08
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    相关资源
    最近更新 更多