You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何格式化fzf多选输出以适配mpv播放

mpv接收多选文件参数的问题

可行的操作

  • 直接指定多个带空格的文件播放:
# 依次播放file1和file2:
mpv "file1" "file 2"
  • 通过fzf单选文件播放:
# 使用fzf选择单个文件并播放:
mpv "$(fdfind . /path/to/Music | fzf)"

失效的场景

当使用fzf的-m参数多选文件时,以下命令无法正常工作(选择至少2个文件时失效):

mpv "$(fdfind . /path/to/Music | fzf -m)"

同样,用kdialog多选文件的命令也不能正常运行:

mpv "$(kdialog --getopenfilename --multiple /path/to/Music/)"

尝试过的无效处理

一开始以为问题是fzf -m返回的内容以换行分隔:

file1
file 2

于是用sed和awk处理输出,想把它格式化成"file1" "file 2"的形式:

fdfind . /path/to/Music | fzf -m |
    sed 's/^/"/;s/$/"/' | # 为每行添加双引号
    awk 1 ORS=' ' | # 将换行替换为空格
    head -c -1 | # 删除最后一个空格

但处理后的结果传给mpv还是无效。

例外情况

kdialog-open-files.lua这个用户脚本可以正常实现多选文件并传给mpv播放。

关键发现

手动多次调用fzf单选,把每个结果作为独立参数传给mpv是可行的:

mpv "$(fdfind . /path/to/Music | fzf)" "$(fdfind . /path/to/Music | fzf)"

由此可以确定,问题出在参数传递的方式上,而非文件路径本身。

内容的提问来源于stack exchange,提问作者Inspired_Blue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:27:29