Недавно я наткнулся на новый сайт pwnedlist.com, который отслеживает скомпрометированные учетные записи электронной почты.
Я подумал, что для меня будет хорошей практикой попытаться запросить каждое электронное письмо из списка.
У меня есть все, что я сделал, хорошо и здорово, но моя проблема в том, что я не знаю хорошего метода для
сделайте так, чтобы stdout проходил через оба grep без повторного вызова второй строки. Вот что у меня так далеко ...
#!/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 -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 ....
Кроме того, мой выбор вариантов резки выглядит довольно громоздко / излишне, есть идеи для чего-нибудь более чистого? Используя одну команду вместо отправки через cut во второй раз?
Вот HTML:
<div id="query_result_negative" class='query_result_footer'>Congrats! Your email is not in our list.</div>
Любая помощь приветствуется, спасибо!