Grep --exclude-dir (仅限根目录)

poo*_*ops 6 grep

我正在尝试设置一个 grep 命令,该命令搜索当前目录,但排除目录(仅当它是根目录时)。

因此,对于以下目录,我希望排除 #1,并包含 #2

1) vendor/phpunit
2) app/views/vendor
Run Code Online (Sandbox Code Playgroud)

我最初是从下面的命令开始的

grep -Ir --exclude-dir=vendor keywords *
Run Code Online (Sandbox Code Playgroud)

我尝试使用 ^vendor, ^vendor/, ^vendor/ , ^vendor,但似乎没有任何效果。

有没有办法用 grep 来做到这一点?我想尝试通过一次 grep 调用来完成此操作,但如果必须的话,我可以将结果通过管道传输到第二个 grep 。

per*_*eal 1

带管道:

grep -Ir keywords * | grep -v '^vendor/'
Run Code Online (Sandbox Code Playgroud)

问题是exclude-dir,它在进入目录之前测试目录的名称而不是路径,因此不可能vendor根据深度来区分两个目录。