如何使用 find 命令根据当前目录中的其他文件查找文件?

How to find files based on other files in current directory, with find command?

想要查找同一文件夹中没有同名 ass/srt 文件的所有 mkv 文件。

我该怎么做?

例如,我有以下目录:

folder_1
|----folder_2
|      |-----a.mkv
|      |-----a.srt
|----folder_3
|      |-----b.mkv
|----folder_4
       |-----c.mkv
       |-----c.ass

搜索结果应该是:folder_1/folder_3/b.mkv.

非常感谢。

求朋友解答,分享:

find . -name "*.mkv" -o -name "*.ass" -o -name "*.srt"| sort |rev|uniq -s 3 -u| rev|rgrep ".mkv"

顺便说一句,如果您使用的是没有 'rev' 命令的 synology nas,您可以使用 python 脚本(rev.py):

import sys
if __name__ == '__main__':
        if len(sys.argv) >= 2:
                for arg in sys.argv[1:]:
                        print '"' + arg[::-1] + '"'

脚本将更改为:

find . -name "*.mkv" -o -name "*.ass" -o -name "*.srt"| sort |awk '{print "\"", [=12=],"\""}' OFS=""|xargs python rev.py |uniq -s 3 -u| xargs python rev.py | grep ".mkv\""