在Mac OS X中查找和扩展正则表达式很困难

时间:2018-06-13 22:44:09

标签: bash macos find

我正在尝试为OS X中的bash find命令编写一个正则表达式,该命令将能够在目录中返回一系列电视剧集。文件的标题格式为"显示名称SXXEYY剧集title.mp4"

当我使用表达式

时,各种正则表达式测试人员给我很好的结果

Firefly S02E(0[8-9]|1[0-3]).*\.mp4

过滤列表,例如:

Firefly S02E07 Heat of Two Suns.mp4
Firefly S02E08 Mal's Wedding.mp4
Firefly S02E09 Inara's Secret.mp4
Firefly S02E10 Burn the Land (1).mp4
Firefly S02E11 Boil the Sea (2).mp4
Firefly S02E12 Rules of Misbehaviour.mp4
Firefly S02E13 The Strawberry Heist.mp4
Firefly S02E14 Monsoon Season.mp4
Firefly S02E15 Book's Next Chapter.mp4

当我只想返回第8到第13集时。然而,当我在find命令中使用它时,结果令人失望。

find -E . -regex 'Firefly S02E(0[8-9]|1[0-3]).*\.mp4'

什么都不返回。

我犯的错误是什么?这让我感到困惑。

1 个答案:

答案 0 :(得分:0)

-regex要求模式匹配整个路径,而不仅仅是文件名部分。您需要将.*/放在模式的开头,以匹配路径的目录部分。

find -E . -regex '.*/Firefly S02E(0[8-9]|1[0-3]).*\.mp4'