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

时间:2016-02-12 05:52:47

标签: find

想要找到所有mkv文件而不在同一文件夹中使用同名的ass / srt文件。

我该怎么做?

例如,我有以下目录:

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

搜索结果应为:folder_1 / folder_3 / b.mkv。

非常感谢。

1 个答案:

答案 0 :(得分:0)

从朋友那里得到答案,分享:

find . -name "*.mkv" -o -name "*.ass" -o -name "*.srt"| sort |rev|uniq -s 3 -u| rev|rgrep ".mkv"
顺便说一下,如果你使用的是synology nas,它没有' rev'命令,你可以使用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 "\"", $0,"\""}' OFS=""|xargs python rev.py |uniq -s 3 -u| xargs python rev.py | grep ".mkv\""