@Gagatyn
Самоучка

Как сортировать числа не по первой цифре?

Здравствуйте! Есть картинки. Нужно их отсортировать
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        30.04.2018     23:23          0 1.jpg
-a---        30.04.2018     23:34          0 1.png
-a---        30.04.2018     23:40          0 10.jpg
-a---        30.04.2018     23:39          0 10.png
-a---        30.04.2018     23:39          0 100.png
-a---        30.04.2018     23:23          0 2.jpg
-a---        30.04.2018     23:34          0 2.png
-a---        30.04.2018     23:39          0 22.png
-a---        30.04.2018     23:40          0 23.jpg

Я пробовал сортировать при помощи dir 5 | sort {[int]$_.name}, но не выходит. Как сортировать по возрастанию/убыванию (верхний список)?
  • Вопрос задан
  • 613 просмотров
Пригласить эксперта
Ответы на вопрос 3
tsklab
@tsklab
Здесь отвечаю на вопросы.
1, 1, 2, 2, 10, 10, 22, 23, 100
Интересно, но именно так и сортируются файлы
в Проводнике
5ae84651f363e995944001.png
в FAR
5ae846b262f0b569932915.png
Ответ написан
Комментировать
@azarij
В меру опытный никто
просто, в данном конкретном случае, нужно убрать из имени все, что не является числом:
dir c:\test\pstest | sort {[int]($_.name -replace "\..*")}

тот же результат будет если изменить регулярку вот так:
dir c:\test\pstest | sort {[int]($_.name -replace "\D")}

если изменится схема именования файлов, то регулярку тоже нужно будет изменить.

а для сортировки в обратном порядке у sort-object есть ключ -descending. просто добавьте его в конец строки.
Ответ написан
Комментировать
@lololololo
Очевидно, что не надо так называть файлы - из сортирует в числовом порядке только explorer на винде. Дополняйте числа нулями.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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