我想知道是否有一個班輪正在做我在找什麼,或者如果我必須寫一個bash腳本。我正在尋找的是在目錄中遞歸搜索,如果找到的字符串被找到,那麼搜索同一個文件以獲得另一個字符串並將其打印到屏幕上。因此,在這個例子中,我想知道「X-Spam-Status」標題的分數是否在電子郵件範圍內,如果是,則打印出該電子郵件中的發件人或主題標題。使用grep找到文本,如果在文件中找到echo那個文件中的另一個字符串
實施例:
我使用的命令是:
grep 'X-Spam-Status: .* score=[5-9]\.' /var/email/example.com/example/cur/* | wc -l
這裏是我需要定位在這些信息的報頭:如果grep的發現在一個匹配
X-Spam-Status: No, score=6.5 required=5.0 tests=HTML_MESSAGE,
RCVD_IN_DNSWL_NONE,T_DKIM_INVALID,URIBL_BLOCKED autolearn=ham version=3.3.2
上面的頭部,從同一封電子郵件中查找並回顯此標頭:
From: "From the Desk of Allen Watson" <[email protected]>
Subject: Don't Live in Fear of Loud Noises
它可以是主題或來源。它不一定是兩者兼而有之。
這就是我一直在尋找的東西。我可以通過在'if'語句之後將所有內容添加到'find'命令來創建它作爲一個班輪。輸出格式也很好。謝謝。還有一件事我試圖讓「X-Spam-Status」的值被回顯,而不是文件名。我該怎麼做呢?我關心的唯一信息是'Score'值和'From'值 – Yamaha32088 2014-11-20 17:57:09
,而不是'head -2',只是使用'egrep -h'^(From | X-Spam-Status)'' - 如果這是不是你所期望的,請發佈一個示例輸出。 – 2014-11-20 20:15:45