2011-11-02 47 views
0

我最近遇到一個名爲pwnedlist.com的新網站,它跟蹤受損的電子郵件帳戶。bash:wget stdout grep「word」如果不存在grep「word2」打印word | word2

我想這將是一個很好的練習練習,以嘗試查詢列表中的每封電子郵件。

我已經完成了所有這些工作,但是我的問題是我不知道 有一個好的方法讓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 
    [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> 

任何幫助表示感謝,謝謝!

回答

2

爲什麼不使用grep來檢查兩個字符串?

... grep -i "congratz\|we found" ... 
+0

哇,我沒有想到這一點,謝謝! – jonschipp