如何使用Grep | awk从Set-Cookie获取nid?

时间:2017-05-14 13:12:10

标签: bash curl cookies awk grep

使用Grep和awk时遇到麻烦。我需要从卷曲中获取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

如何解决?

1 个答案:

答案 0 :(得分: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,因为我们找到了我们想要的内容,无需解析其余内容