我有一个满是音乐文件的目录,我想在mplayer中播放。我想播放这些文件的顺序,他们的轨道号码,这是第四个字段(空格分隔)在他们的文件名。我知道我可以这样做:
ls | sort -nk4 | playlist然后
mplayer -playlist playlist但我希望能够做到这一点,而不创建一个播放列表文件。到目前为止我所拥有的最好的是
ls | sort -nk4 | xargs -I{} mplayer {}这似乎是可行的,但我无法使用任何正常的mplayer控件。我很好奇这是否可能。似乎你应该按你的方式打字
mplayer songA.flac songB.flac songC.flac...而且效果很好。
发布于 2014-05-28 22:39:47
一旦mplayer需要管道,它的std input现在就连接到管道上,而不是键盘,所以mplayer的控件停止工作--尝试如下:
eval mplayer $( printf "%q\n" * | sort -n -k4 )或者如果您的ls有-Q (报价)选项:
eval mplayer $( ls -Q | sort -n -k4 )/tmp下面。%q of printf引用文件名-歌的名称可以包含各种字符。eval需要去掉额外的引用层,因此mplayer只看到正确引用的文件名。正如您所看到的,有些混乱,所以我再次建议使用临时文件(在那里,做了:)。
发布于 2014-07-17 19:16:26
如果使用GNU并行,您可以这样做:
ls | sort -nk4 | parallel --tty -Xj1 mplayer即使您的文件名包含空格,这也是可行的。
https://stackoverflow.com/questions/23921955
复制相似问题