我最近遇到了一个名为pwnedlist.com的新网站,它会跟踪受感染的电子邮件帐户。
我认为尝试查询列表中的每封电子邮件对我来说是一次很好的练习。
我做了所有这些,很好,很花哨,但我的问题是我不知道一个好的方法 让stdout通过两个grep's而没有第二次为第二个字符串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
jonschipp@gmail.com Congrats! Your email is not in our list.
somebody@somebody.com Congrats! Your email is not in our list.
crap@crap.com 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>
感谢任何帮助,谢谢!
答案 0 :(得分:2)
为什么不使用会检查两个字符串的grep?
... grep -i "congratz\|we found" ...