在find中有没有办法在-exec中使用管道?我不希望grep遍历整个文件,而是只遍历每个文件的第一行。
find /path/to/dir -type f -print -exec grep yourstring {} \;
我试着用"cat“和"head -1”把管道放在那里,但是效果不是很好。我试着使用括号,但我不知道如何准确地把它们放在那里。我将非常感谢你的帮助。我知道如何在不使用find的情况下用其他方法来解决这个问题,但是我们在学校里尝试过使用find和pipeline来解决这个问题,但是却不知道该怎么做。
find /path/to/dir -type f -print -exec cat {} | head -1 | grep yourstring \;
这就是我们试图做到这一点的方式,但无法处理括号,甚至无法控制它是否可行。我试着通过网络查找,但找不到任何答案.
发布于 2015-04-10 21:02:11
这并不能直接回答你的问题,但是如果你想做一些复杂的操作,你最好使用脚本:
for file in $(find /path/to/dir -type f); do echo ${file}; cat $file | head -1 | grep yourstring; done
https://stackoverflow.com/questions/21825393
复制相似问题