gpt4 book ai didi

shell - grep -r 不可用;现在怎么办?

转载 作者:行者123 更新时间:2023-12-01 10:06:57 25 4
gpt4 key购买 nike

我正在尝试递归搜索当前文件夹中包含的所有文件中的字符串,我正在其中执行 grep。但是这台主机上的 grep 似乎太旧了。以下是它的一些用法。

>> grep -r "some string here" *.*
grep: illegal option -- r
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvwx] -e pattern_list...
[-f pattern_file...] [file...]
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvwx] [-e pattern_list...]
-f pattern_file... [file...]
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvwx] pattern [file...]

那么我应该怎么做呢?

最佳答案

假设你有find

find . -type f -exec grep "some string here" {} \;

另请注意,您的通配符只会匹配名称中包含点的文件;我认为这是一个错误,但如果不是,请在 -exec 之前添加 -name '*.*' (或将 find . 更改为find *.* 如果您打算搜索名称中包含点的目录,这是您的 grep 命令实际执行的操作)。

旧的 DOS 8+3 通配符 *.* 将匹配所有文件,因为即使在没有扩展名的文件名中,点也是隐含的。所有文件(不以点开头)的 Unix 通配符只是 *

这可以通过 xargs 或支持 -exec ... + 的更新的 find 来提高效率。 >

关于shell - grep -r 不可用;现在怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29466801/

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