2017-05-14 76 views
0

我用grep和awk时有麻烦。我需要从卷曲中获得nid,并找到位于Set-Cookie的nid。 但是,当我把它称为,NID不会出现如何使用Grep | awk从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

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

你实际上并不需要grep,因为awk可以自行筛选。 一种更简单和更快速的解决方案:

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

即:

  • /^Set-Cookie:/表示匹配开始用线 “设置Cookie:”
  • -F=是使用=作为字段分隔符
  • print $2是打印所述第二场。鉴于=作为字段分隔符,此值应是对nid=...
  • 印刷后的右侧,我们exit,因为我们发现我们想要的,没有必要解析其余内容
+0

谢谢是一个很大兄弟,这很好。 我们能否生成NID automaticaly使用在bash脚本一些? –

+0

如果我们访问某个网站,我会生成唯一的nid并存储在cookie中吗? 我的问题是,可以通过使用一些脚本自我生成的独特nid? 我已经在网站上看过一篇文章,说nid可以使用js自动生成。真的吗? –

+0

@AdrianBondanAdiPrakasa似乎答案将取决于您使用的网站的具体情况。你会在他们的文档中找到答案。 – janos