【问题标题】:find command with two different patterns查找具有两种不同模式的命令
【发布时间】:2016-11-22 18:22:54
【问题描述】:

我有一个包含视频文件和字幕的巨大目录,现在我通常有 3 个不同的字幕文件,这是不正确的。

videofilename.srt
videofilename.en.srt
videofilename.sv.srt

英文字幕,然后是英文字幕(再次),然后是瑞典语。现在我的视频播放器无法识别所有这三个,因为它是两种不同的标准(有语言和没有语言)。

所以我想删除所有包含 videofilename.srt 的文件,但我到底要如何为它创建一个 find 命令呢??

find . -type f -name '*[^\...]\.srt'

好像没用。

帮助?

【问题讨论】:

    标签: shell unix find


    【解决方案1】:

    您可以在find 中使用-regex 来查找没有语言部分的文件:

    find . -regex '\./[^.]*\.srt$'
    
    ./videofilename.srt
    

    如果您想忽略所有*.en.srt*.sv.srt,请使用:

    find . -name '*.srt' -not \( -name '*.en.srt' -o -name '*.sv.srt' \)
    
    ./videofilename.srt
    

    【讨论】:

    • 但是如果视频文件名包含一个 .那不会也触发了吗??
    • 它只会找到没有点的文件名。如果videofilename 也可以包含点,那么您将需要定义所有要忽略的语言。
    • 非常感谢。 谦卑的弓
    猜你喜欢
    • 2017-02-02
    • 2017-02-10
    • 1970-01-01
    • 2014-11-12
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 2012-10-24
    相关资源
    最近更新 更多