2011-06-13 45 views
1

我有ASCII文件來解析48小時或更長時間;我可以找出他們像這樣Grep:當沒有命中時返回用戶消息

find . -name "FILE*TXT" -mtime +1 -exec ls -ltas '{}' ';' 

一些文件有硬件錯誤的列表(我們測試的電子元件),有些則沒有。如果文件名沒有錯誤,我還是要顯示,像這樣

grep ^err R*VER && echo "No error" 
FILEA.TXT:err ->USB 3910 err 
FILED.TXT:err No Error 

這grep的說法作品的消息,但它似乎覆蓋,如果我同時運行兩個以上的發現()語句...如何我可以將二者結合起來語句來創建一個報告,列出像這樣

FILEA.TXT Button 3320 err 
FILEB.TXT USB 3235 err 
FILEC.TXT IR Remote 2436 err 
FILED.TXT No error 

文件名和錯誤(S)是否有可能與文件名返回「沒有錯誤」沒有錯誤?在此先感謝您的幫助。

回答

0

一個朋友想出了這個

find . -name "FILE*TXT" -mtime +1 -exec sh -c 'grep -H ^err "{}" || echo "{}:No error"' \; 

我無法弄清楚如何爲每個文件運行grep的;他的解決方案確實如此。

感謝您抽出時間。

6

如果命令返回失敗,則-exec謂詞將返回false。

find ... \(-exec grep ... {} \; -o -printf "%p No error\n" \) ... 
+0

+1。回答比我在手冊中看到的要快得多:-) – 2011-06-13 23:31:07

相關問題