gpt4 book ai didi

unix - 在find中如何在-exec中使用管道

转载 作者:行者123 更新时间:2023-12-03 10:24:31 25 4
gpt4 key购买 nike

有什么方法可以在find中的-exec中使用管道?我不希望grep遍历整个文件,而只遍历每个文件的第一行。

find /path/to/dir -type f -print -exec grep yourstring {} \;

我试图用“cat”和“head -1”将管道放置在那里,但是效果不是很好。我试图以某种方式使用括号,但是我没有设法弄清楚将其放置在何处。
非常感谢您的帮助。我知道如何在不使用查找的情况下解决问题,但是我们尝试在学校中使用查找和管道的方法来完成它,但无法管理。
find /path/to/dir -type f -print -exec cat {} | head -1 | grep yourstring \;

这是我们尝试执行此操作的方式,但是无法管理括号,甚至不可能。我试图浏览网络,但找不到任何答案。

最佳答案

为了能够使用管道,您需要执行一个shell命令,即带有管道的命令必须是-exec的单个命令。

find /path/to/dir -type f -print -exec sh -c "cat {} | head -1 | grep yourstring" \;

请注意,上面是猫的无用用法,可以写成:
find /path/to/dir -type f -print -exec sh -c "head -1 {} | grep yourstring" \;

实现您想要的另一种方法是说:
find /path/to/dir -type f -print -exec awk 'NR==1 && /yourstring/' {} \;

关于unix - 在find中如何在-exec中使用管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21825393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com