列出包含与正则表达式匹配的文件的目录

列出包含与正则表达式匹配的文件的目录

我想在我的 FreeBSD 服务器上设置一个简单的过滤系统,以便我创建目录的任意“视图”。

例如,我希望能够列出所有与模式“*.mp3”匹配的目录,但只显示目录名称。

例如,如果我在音乐文件夹上运行命令,我希望能够在一个命令中显示所有包含 mp3 的目录,并在单独的命令中显示所有包含 flac 文件的目录。

该命令find . -name "*.mp3"几乎满足了我的要求,但它为每个文件显示一个条目。有没有办法将查找限制为每个目录一个结果?

答案1

使用此脚本:

find / -name "*.mp3" | grep -o '.*/' | sort | uniq > mp3files

答案2

怎么样:

寻找 。 -name '*.mp3' -print0 |xargs -0 -i 目录名 {} |uniq

我得到类似这样的信息:

./mnt/mp3/Adicts/完整单曲集(1995)

./mnt/mp3/Adicts/崛起与辉煌(2002)

./mnt/mp3/Adicts/赞美之歌(1981)

./mnt/mp3/Adicts/二十七(1992)

./mnt/mp3/Adicts/终极成瘾

./mnt/mp3/Adicts/Adicts 精选集 (1998)

相关内容