我有一个充满音乐文件的目录,我想在mplayer中播放。我想按照它们的轨道号顺序播放这些文件,它们是文件名中的第四个字段(空格分隔)。我知道我可以这样做:
ls | sort -nk4 |播放列表 然后 mplayer -playlist播放列表 但我希望能够在不创建播放列表文件的情况下完成。我到目前为止最好的是
ls | sort -nk4 | xargs -I {} mplayer {}
这似乎有效但我无法使用任何正常的mplayer控件。我很好奇这是否可能。它似乎应该是你可以输入的 mplayer songA.flac songB.flac songC.flac ...而且效果很好。
感谢。
答案 0 :(得分:1)
使用GNU parallel你可以这样做:
ls | sort -nk4 | parallel --tty -Xj1 mplayer
即使文件名包含空格,也可以使用。
答案 1 :(得分:0)
mplayer
在管道之后,其std input
现在连接到管道而不是键盘,因此mplayer
的控件停止工作 - 请尝试以下方法:
eval mplayer $( printf "%q\n" * | sort -n -k4 )
或者ls
有-Q
(引用)选项:
eval mplayer $( ls -Q | sort -n -k4 )
/tmp
。%q
的引用说明符printf
引用文件名 - 歌曲的名称中可以包含各种字符。eval
需要删除额外的引用层,因此mplayer
只能看到正确引用的文件名。 有点乱,如你所见,所以我再次建议使用临时文件(在那里,做到了:)。