使用 grep 或 rg 查找不同的目录名称

Finding the distinct directory names using grep or rg

我是 Linux 命令的新手,我正在尝试在目录和包含该词的所有目录名称中递归地搜索一个说“apple”的词。

我正在使用类似于 grep 的 ripgrep(rg) 来获取其中有苹果的文件名

例如:

rg -l "apple" 

给我输出:

a/fruit.c
b/fruit.c
a/fruits.c
a/fruitsnames.c
a/fruity/fruits.c
b/fru/fruit/fru/fr.c
c/frts.c

有没有办法让我只能使用唯一的父文件夹名称?

Example output I expect is to get only the folder names:
a
b
c

用grep解决也不错

非常感谢

使用 sed 删除 / 中的所有内容,然后使用 sort -u 删除重复内容

ripgrep -l apple | sed 's#/.*##' | sort -u

使用 Perl 单行代码,sort -u 保持唯一的目录:

rg -l "apple" | perl -pe 's{/[^/]+$}{}' | sort -u

或者只保留最高级别的目录:

rg -l "apple" | perl -pe 's{/.*}{}' | sort -u