bash: wget stdout 到 grep “word”如果不存在 grep "word2"打印字|字2
我最近发现了一个名为 pwnedlist.com 的新网站,它跟踪受损的电子邮件帐户。
我认为尝试从列表中查询每封电子邮件对我来说是一个很好的练习。
我已经完成了所有这些,很好,但我的问题是我不知道一个好的方法 让标准输出通过两个 grep,而无需再次 wget'ing 第二个字符串。这是我到目前为止所拥有的......
#!/usr/local/bin/bash
if [ -z "$1" ]
then
echo "Usage: $0 <list>"
exit
fi
for address in $(cat $1)
do
echo -n "$address "
wget -O - --post-data "query_input=$address" pwnedlist.com/query 2>/dev/null |
grep -i congrats | cut -d '>' -f 2 | cut -d '<' -f 1
done
echo
这就像我想要的那样:
$ ./querypwnlist testfile
[email protected] Congrats! Your email is not in our list.
[email protected] Congrats! Your email is not in our list.
[email protected] Congrats! Your email is not in our list.
我的问题是我需要找到一种方法来 grep 另一个参数,不太好的参数
grep -i "we found"
是我需要的字符串。
这是 HTML:
<div id="query_result_negative" class='query_result_footer'>... we found your email/username in our database. It was last seen on 2011-08-30. Please read on.</div>
我尝试了这个,希望它也能打印那些“受损”的电子邮件,但它不起作用,我的逻辑不正确。
wget ..... | ( grep -i congrats || grep -i "we found" ) | cut ....
另外,我选择的切割选项看起来有点笨重/多余,有什么更干净的想法吗?使用一个命令而不是通过剪切第二次发送它?
这是 HTML:
<div id="query_result_negative" class='query_result_footer'>Congrats! Your email is not in our list.</div>
感谢任何帮助,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为什么不使用 grep 来检查两个字符串呢?
Why not use a grep that will check for both strings?