linux - установка порядка, в котором файлы читаются или выводятся с помощью утилит (сортировка)

У меня проблемы с программами, которые читают файлы в неправильном порядке, а также выводят их в нежелательном порядке с помощью таких утилит, как ls .

Я пробовал некоторые из параметров LC_COLLATE , но ни один из них не соответствовал моим предпочтениям, поэтому я подумал, что я могу сделать что-то еще.

Примеры команд, приводящих к неправильному порядку:

user@host: /home/user/Video $ mpv *.mkv

В / home / user / Video 150 файлов, и вот первые 12 команд из такой программы, как mpv * .mkv , будет выглядеть так:

TVSeriesName - 01.mkv
TVSeriesName - 02.mkv
TVSeriesName - 03.mkv
TVSeriesName - 04.mkv
TVSeriesName - 05.mkv
TVSeriesName - 06.mkv
TVSeriesName - 07.mkv
TVSeriesName - 08.mkv
TVSeriesName - 09.mkv
TVSeriesName - 10.mkv
TVSeriesName - 100.mkv
TVSeriesName - 101.mkv

Он читает 100 раньше, чем 11, даже с нулем в начале.

В идеале, он должен читать их в правильном порядке от 1 до 150, даже без нуля в начале.

Я хочу иметь универсальный порядок чтения и сортировки файлов, аналогичный стандартному для файлового менеджера ranger .

Пример:

.1-hiddendir/
.2-hiddendir/
.a-hiddendir/
.b-hiddendir/
.C-hiddendir/
.d-hiddendir/
.E-hiddendir/
1-dir/
2-dir/
A-dir/
b-dir/
c-dir/
D-dir/
.1-dotfile
.2-dotfile
.a-dotfile
.b-dotfile
.C-dotfile
1-file
2-file
a-file
B-file
c-file

ОС: Arch Linux, FS: ext4

Что я могу сделать с настройками среды или чем-то еще в дистрибутиве Linux для этого?

0
28.03.2016, 00:41
1 ответ
find . -maxdepth 1 -type f  -name '*.mkv' -print0 | sort -Vz | xargs -0r mpv

Это использует find для вывода разделенного NUL списка всех имен файлов, соответствующих '* .mkv' в текущем каталоге. , затем GNU sort -z или - с завершающим нулем для ввода с разделением NUL и -V или ) --version-sort для сортировки имен файлов) и, наконец, xargs -0r mpv для запуска mpv со всеми именами файлов в отсортированном порядке в качестве аргументов.

Это будет работать с любым именем файла, даже с пробелами, переводом строки или метасимволами оболочки в имени.

Насколько мне известно, только GNU sort и FreeBSD sort в настоящее время поддерживают параметр -z или - завершающийся нулем .

1
28.01.2020, 02:48

Теги

Похожие вопросы