我试图为OS中的bash命令编写一个regex,该命令能够在目录中返回一系列电视节目。这些文件的标题采用“显示名称SXXEYY史诗title.mp4”的格式。
当我使用表达式时,不同的regex测试人员给了我很好的结果。
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'
什么都不回。
我犯了什么错误?这让我现在很困惑。
发布于 2018-06-13 23:05:46
-regex
需要模式来匹配整个路径,而不仅仅是文件名部分。您需要将.*/
放在模式的开头,以匹配路径的目录部分。
find -E . -regex '.*/Firefly S02E(0[8-9]|1[0-3]).*\.mp4'
https://stackoverflow.com/questions/50847333
复制相似问题