Можно ли просмотреть этот вывод, отсортированный с titlepage_1.pdf перед titlepage_19.pdf?
$ ls
allTitlepage.pdf titlepage_12.pdf titlepage_19.tex titlepage_26.pdf titlepage_32.tex titlepage_4.tex
allTitlepage.tex titlepage_12.tex titlepage_1.pdf titlepage_26.tex titlepage_33.pdf titlepage_5.pdf
assignment.pdf titlepage_13.pdf titlepage_1.tex titlepage_27.pdf titlepage_34.pdf titlepage_5.tex
assignment.tex titlepage_13.tex titlepage_20.pdf titlepage_27.tex titlepage_34.tex titlepage_6.pdf
graphicsAssignment2.pdf titlepage_14.pdf titlepage_20.tex titlepage_28.pdf titlepage_35.pdf titlepage_6.tex
graphicsAssignment2.tex titlepage_14.tex titlepage_21.pdf titlepage_28.tex titlepage_35.tex titlepage_7.pdf
README.md titlepage_15.pdf titlepage_21.tex titlepage_29.pdf titlepage_36.pdf titlepage_7.tex
thesisTitlepage.pdf titlepage_15.tex titlepage_22.pdf titlepage_29.tex titlepage_36.tex titlepage_8.pdf
thesisTitlepage.tex titlepage_16.pdf titlepage_22.tex titlepage_2.pdf titlepage_37.pdf titlepage_8.tex
titlepage_0.pdf titlepage_16.tex titlepage_23.pdf titlepage_2.tex titlepage_37.tex titlepage_9.pdf
titlepage_0.tex titlepage_17.pdf titlepage_23.tex titlepage_30.pdf titlepage_38.pdf titlepage_9.tex
titlepage_10.pdf titlepage_17.tex titlepage_24.pdf titlepage_30.tex titlepage_38.tex titlepage_one.pdf
titlepage_10.tex titlepage_18.pdf titlepage_24.tex titlepage_31.pdf titlepage_3.pdf titlepage_one.tex
titlepage_11.pdf titlepage_18.tex titlepage_25.pdf titlepage_31.tex titlepage_3.tex titlepage_two.tex
titlepage_11.tex titlepage_19.pdf titlepage_25.tex titlepage_32.pdf titlepage_4.pdf
command-line
ls
alhelal
источник
источник
Ответы:
Используйте ключ -v [натуральный вид (версии) чисел в тексте]
источник
Выход отсортирован. Согласно
ls
справочной странице:Но если вы хотите пойти дальше, у вас есть как минимум два варианта:
Вариант 1 -
ls
сортировка выключателейman ls
рассказывает о количестве переключателей, которые вы можете использовать для сортировки, в частности, страница man ls говорит:В вашем случае вам нужна сортировка по версии (-v). Будьте осторожны, так как это также отсортирует все, что имеет
blahblah-X.Y.Z-A
порядок, который может быть не совсем тем, что вы хотите. Смотрите также объяснение GNU сортировки версий .Вариант 2 - Трубы для сортировки команд
Вы можете использовать канал
|
для отправки вывода другой команде, например, команде,sort
которую вы можете использовать для сортировки несколькими другими способами,ls -1 | sort -n
что полезно, если у вас есть пронумерованные файлы. В-1
коммутатор гарантирует , что выход один-линии каждого файла.Точно так же вы можете манипулировать выводом, чтобы помочь с сортировкой, используя такие вещи, как
sed
илиawk
.Есть много способов ответить на этот вопрос *. Вам может пригодиться учебник по оболочке Linux.
* (Видите, что я там делал? :-P)
источник
Как уже отмечался в комментариях, выход будет уже отсортирован, но по символам, а не число. Возможно, вы захотите передать вывод,
ls
черезsort
который есть переключатель для сортировки по номерам в строках:Из справочной страницы :
Недостаток: когда мы выпускаем,
ls
он выводит файлы в таблицу с таким количеством столбцов, сколько умещается на текущем экране (как вы показали в своем посте). Но когдаls
замечает, что его вывод перенаправлен в файл или в канал (как вls | sort
), тоls
печатает файлы только в одном столбце, потому что тогда он предполагает, что вывод должен обрабатываться построчно (иначе файл за файлом) какой-то другой программой (вродеsort
). Таким образом, выводls | sort -V
будет в одном столбце, а не в таблице с несколькими столбцами. Посмотрите простой, но прекрасный ответ @vijay о том, как этого избежать.источник
column
ls -l
: перечисляет файлы каталога по вертикали, но не в определенном порядке.ls -l | sort -k 3
:-k 3
отсортирует вывод предыдущей команды по 3-му столбцу.источник