如何根据文件的索引号对目录中的文件进行排序?

mun*_*ish 1 sort files

我有这样的文件:

4-some file.mp4
1-another file.mp4
3-one more file.mp4
2-got another file.mp4
Run Code Online (Sandbox Code Playgroud)

等等。

使用命令行以vlc *未排序的顺序播放vlc 中的文件。

所以我尝试使用 vlc 播放文件“ vlc < <(ls * | sort -V)”不起作用。

尝试更改文件的时间戳 for i in "$(ls [!R]* | sort -V)"; do touch "$i";sleep 1; done不起作用,因为"$(ls [!R]* | sort -V)"将完整的文件列表表示为一个参数,但我无法删除双引号,因为文件的名称中有空格。

123*_*123 6

这应该工作

find . -name "*mp4" -print0 | sort -Vz | xargs -0 vlc
Run Code Online (Sandbox Code Playgroud)

  • @phk 不,`-n` 不起作用。`-V` 似乎在做一些聪明的事情。要使用`-n`,您需要定义要排序的字段。例如:`查找。-name '*mp4' -printf '%f\0' | sort -t'-' -k 1.1n,1.3 -z`。如果它适合您,请使用类似“100-foo.mp4”的文件名再试一次。甚至`11-foo`。 (4认同)