查找具有两种不同模式的命令

时间:2016-11-22 18:22:55

标签: shell unix find

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

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

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

所以我想要删除所有拥有videofilename.srt的文件,但是我该如何创建一个find命令?

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

似乎不起作用。

帮助?

1 个答案:

答案 0 :(得分:1)

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

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

./videofilename.srt

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

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

./videofilename.srt