我有ASCII文件解析48小时或更长时间;我可以这样识别它们
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语句有效,但如果我同时运行两个语句,它似乎会覆盖上面的find()语句...如何组合这两个语句来创建一个列出文件名和错误的报告,如此
FILEA.TXT Button 3320 err
FILEB.TXT USB 3235 err
FILEC.TXT IR Remote 2436 err
FILED.TXT No error
是否可以在没有错误的情况下使用文件名返回“No error”?在此先感谢您的帮助。
答案 0 :(得分:6)
如果命令返回失败,-exec
谓词将返回false。
find ... \( -exec grep ... {} \; -o -printf "%p No error\n" \) ...
答案 1 :(得分:0)
一位朋友想出了这个
find . -name "FILE*TXT" -mtime +1 -exec sh -c 'grep -H ^err "{}" || echo "{}:No error"' \;
我无法弄清楚如何为每个文件运行grep;他的解决方案确实如此。
感谢您抽出宝贵时间。