我正在尝试堆叠一个查找命令,以便它返回的结果仅包含其中包含“警告:”或“错误:”文本的文件。我还需要特定格式的这些结果,所以我正在使用exec stat
它。
我可以得到这个版本的工作,但我需要能够-exec stat
在 while 循环中使用来制定一个特定的字符串,这-exec stat
让我的 shell 把>
提示交给我。不工作的部分在下面以粗体显示。
另外,我可以让这些工作。我不能在一起。
这是我工作的一个例子:
find . -type f -exec grep -li error: {} \; | while read -r file; do ls -l "$file"; done
所以现在我正试图用另一个将文件限制为特定时间、类型等的进程来硬塞它。进展不顺利:
查找 /my/directory/here/ -type f -name *.log -mmin -480 -mmin +60 -exec grep -li 警告:{} \; -exec grep -li 错误:{} \; | 同时读取-r文件;执行 -exec stat -c "$file" '%n|%y|%x|%s|%U|%u' {} \; 完毕
-exec stat
请注意,如果我从 while 循环中删除 ,整个事情都会起作用。如果我用简单的 替换它ls -l
,结果会返回给我。现在 shell 只是给我一个命令提示符。
我知道我做的不对,但我现在不知道我应该首先解决什么。