使用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
如何解决?
答案 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
,因为我们找到了我们想要的内容,无需解析其余内容