如何在 MPlayer 中仅播放特定文件?

如何在 MPlayer 中仅播放特定文件?

问题:例如,一个文件夹中有 16 个曲目,但我只想播放 1 - 7。如何在 MPlayer 中执行此操作?方法如下:

mplayer 1.mp3 - 7.mp3

这不是正确的方法。在 MPlayer 中不写出每个文件名是否可行?

答案1

据我所知,这在 MPlayer 内部是不可能的,但一点命令行魔法可以产生一些很好的结果。

以下内容可能有点笨拙,但按照您指定的命名约定,这里可以很好地运行:

mplayer $(find . -maxdepth 1 -name "[1-7].mp3" | ls -v)

简要说明:

  • find . -maxdepth 1:在当前目录中搜索,不进行递归。
  • -name "[1-7].mp3":查找文件名仅包含数字 1-7 的 mp3。本[1-7]节演示了 Bash 范围表达式,其中匹配数字 1 和 7 以及介于 1 和 7 之间的所有数字。
  • ls -v:对搜索进行排序,以便按数字进行播放。

毫无疑问还有其他方法,但这种方法已经足够好了,如果你的实际文件名不同,只需改变语法中的正则表达式find来匹配......

答案2

在这种情况下,您唯一需要的其他工具是您的 shell 命令行。

mplayer [1-7].mp3

该示例使用 shell通配符(又名路径名扩展)来选择要播放的文件。但是,例如,如果您想播放曲目 8 至 11,则应该看起来更像这样:

mplayer [89].mp3 1[01].mp3

有关详细信息,请参阅2.13. 模式匹配符号在 Posix 规范中,特别是子部分2.13.3 用于文件名扩展的模式

另请参阅路径名扩展shell 手册页 ($ man sh) 的部分以及其后的关于Shell 模式匹配

相关内容