Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 9

Sort по первому числу в строке

28.10.2018, 13:32. Показов 2089. Ответов 36

Студворк — интернет-сервис помощи студентам
Здравстуйте.

Возник следующий вопрос
При сортировке (командой sort /R) .txt файла вида:
8 ***
10 ***
2 ***
3 ***
выводит следующее :
8 ***
3 ***
2 ***
10 ***
как заставить cmd воспринимать 10 как число, а не как цифру 1 ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2018, 13:32
Ответы с готовыми решениями:

Сортировка списка, главная сортировка по второму числу, второстепенная по первому числу
CardList.Sort(new Comparison<int>((arg1, arg2) => { return (arg1 % 10).CompareTo(arg2 % 10); })); В данном коде сортируется список...

Из каждой группы чисел взять по первому числу
Здравствуйте, подскажите, есть группы числе в столбик, как можно из каждой группы взять по первому числу, 0 1 2 3 4 5 6 7 8 9, или может...

Определить сумму элементов массива X(n), предшествующих первому отрицательному числу
Лабораторная работа №4. Массивы Задача 1. Определить сумму элементов массива X(n), предшествующих первому отрицательному числу. Вывести...

36
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
28.10.2018, 15:56
ну на 2х значных допустим победить можно, а далее 3 и ... , sort cmd-шная на это не способна. Для дела надо? Или соответствующие утилиты в помощь или в разделе Powershell спрашивайте.
1
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 9
28.10.2018, 23:03  [ТС]
спасибо за ответ. Посетила такая мысль: т.к. данные числа после сортировки будут удалены, я могу как-то модернизировать их вид,до, например, 00001 00010, что поможет мне в сортировке. так вот вопрос, как такое дописывание нулей сделать динамическим?
0
6981 / 2873 / 1104
Регистрация: 06.06.2017
Сообщений: 9,752
29.10.2018, 01:22
gesr_s, прицепил утилиты на выбор, не мучайтесь.
Вложения
Тип файла: 7z SortUtils.7z (136.1 Кб, 1 просмотров)
1
 Аватар для volodin661
6688 / 2279 / 348
Регистрация: 10.12.2013
Сообщений: 7,893
29.10.2018, 06:02
---
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
29.10.2018, 10:38
Цитата Сообщение от gesr_s Посмотреть сообщение
Посетила такая мысль: т.к. данные числа после сортировки будут удалены, я могу как-то модернизировать их вид,до, например, 00001 00010, что поможет мне в сортировке.
Цитата Сообщение от gesr_s Посмотреть сообщение
как такое дописывание нулей сделать динамическим?
т.к. в тегах наблюдается windows 10, то не следует тащить в систему что ни попадя
Достаточно использовать встроенные средства:
PowerShell
1
gc text.txt -enc utf8|%{if($_ -match '^(\d+)'){$_ -replace '^(\d+)',"$($matches[1].padleft(5,'0'))"}}|sort
1
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
29.10.2018, 11:07
Цитата Сообщение от YuS_2 Посмотреть сообщение
Достаточно использовать встроенные средства
Вариант без foreach, if, replace и padleft:

PowerShell
1
(sls 1.txt -patt '^\d+'|sort{[int32]$_.Matches.Value}-de).Line
Code
1
2
3
4
10 ***
8 ***
3 ***
2 ***
0
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
29.10.2018, 11:40
Цитата Сообщение от KDE777 Посмотреть сообщение
Вариант без foreach, if, replace и padleft:
вариант, конечно, но недоделанный до:
Цитата Сообщение от gesr_s Посмотреть сообщение
модернизировать их вид,до, например, 00001 00010
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
29.10.2018, 11:44
Цитата Сообщение от YuS_2 Посмотреть сообщение
вариант, конечно, но недоделанный до
Цитата Сообщение от gesr_s Посмотреть сообщение
я могу как-то модернизировать их вид, до, например, 00001 00010, что поможет мне в сортировке
Очевидно, что требования это возникло позже и является костылём для осуществления сортировки
1
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
29.10.2018, 12:41
Цитата Сообщение от KDE777 Посмотреть сообщение
Очевидно
в таком случае, очевидно, что не следовало цитировать мое сообщение и упоминать про padleft:
Цитата Сообщение от KDE777 Посмотреть сообщение
Вариант без foreach, if, replace и padleft:
ибо, очевидно, что это не вариант, а просто решение другой задачи, озвученной в первом сообщении... нет?
1
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
29.10.2018, 12:53
Цитата Сообщение от YuS_2 Посмотреть сообщение
ибо, очевидно, что это не вариант, а просто решение другой задачи, озвученной в первом сообщении... нет?
Согласен.

Просто отвечая вам, я имел в виду, что можно решить изначальную задачу и без padleft
1
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
29.10.2018, 13:19
Цитата Сообщение от KDE777 Посмотреть сообщение
можно решить изначальную задачу и без padleft
Это да, согласен
Но, думаю, что без if, всё же, не обойтись, ибо строки в файле могут и не содержать ^\d+
Вот, тут мой поправленный вариант, с учетом наличия таких строк:
PowerShell
1
gc text.txt -enc utf8|%{if($_ -match '^(\d+)'){$_ -replace '^(\d+)',"$($matches[1].padleft(5,'0'))"}else{$_}}|sort
1
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
29.10.2018, 13:33
Цитата Сообщение от YuS_2 Посмотреть сообщение
Но, думаю, что без if, всё же, не обойтись, ибо строки в файле могут и не содержать ^\d+
В теме про это не упоминалось и пример текста был только с числами. Но если, нужно учитывать и это, тогда:

Code
1
2
3
4
5
6
8 ***
def
10 ***
abc
2 ***
3 ***
PowerShell
1
(sls 1.txt -patt '^(\d+)?'|sort{[int32]$_.Matches.Value}-de).Line
Code
1
2
3
4
5
6
10 ***
8 ***
3 ***
2 ***
def
abc
Добавлено через 1 минуту
т.е., всё равно без if
1
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
29.10.2018, 13:40
Цитата Сообщение от KDE777 Посмотреть сообщение
всё равно без if
Точно, можно. Осталось только выровнять числа нулями шутка.
Это если только ТС-у, вдруг необходимо...
1
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 9
29.10.2018, 16:30  [ТС]
Благодарю за ответ. Действительно, с точки зрения логики данный вариант оптимален. Но, к сожалению, необходим именно костыль на cmd.
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
29.10.2018, 16:44
Цитата Сообщение от gesr_s Посмотреть сообщение
Но, к сожалению, необходим именно костыль на cmd.
Можно и в cmd запустить

Windows Batch file
1
powershell.exe -command "&{(sls c:\temp\1.txt -patt '^(\d+)?'|sort{[int32]$_.Matches.Value}-de).Line}"
1
 Аватар для volodin661
6688 / 2279 / 348
Регистрация: 10.12.2013
Сообщений: 7,893
29.10.2018, 16:50
И вот такой текст отсортирует?

Ⅸ это девять ( римская цифра )
Ⅿ это тысяча ( римская цифра )
½ это одна вторая ( символы, относящиеся к дробным числам )
¾ это три четвертых ( символы, относящиеся к дробным числам )
२० это двадцать ( Современный Девангари )
1
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
29.10.2018, 16:58
Цитата Сообщение от volodin661 Посмотреть сообщение
И вот такой текст отсортирует?
Нет. А так же не отсортирует числа записанные на кипу, клинописи и пляшущих человечках
0
 Аватар для volodin661
6688 / 2279 / 348
Регистрация: 10.12.2013
Сообщений: 7,893
29.10.2018, 17:12
Тем не менее такой универсальный инструмент сейчас имеется.
0
29.10.2018, 17:44

Не по теме:

Цитата Сообщение от volodin661 Посмотреть сообщение
Тем не менее такой универсальный инструмент сейчас имеется.
И он поймёт, что это именно числа, а не: я, размер одежды, система зажигания, видеоинтерфейс и контроллер домена? :)

I, XL, CDI, DVI, DC

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2018, 17:44
Помогаю со студенческими работами здесь

Найти сумму чисел, предшествующих первому отрицательному числу в файле
Задача: 1) Найти сумму чисел, предшествующих первому отрицательному числу в файле. Исходник: unit Unit1;

Из каждой строки удалить числа, предшествующие первому положительному числу
текстовый файл содержит целые положительные и отрицательные числа. из каждой строки удалить числа, предшествующие первому...

Найти сумму чисел предшествующих первому отрицательное числу последовательности
Написать программу которая находит сумму чисел, которые предшествующих первому отрицательное числу в ведомой последовательности .Всего 6...

Произведение и сумма отрицательных элементов последовательности, предшествующих первому положительному числу
Найти произведение и сумму отрицательных элементов последовательности предшествующих первому положительному числу

Замените нулем все элементы, предшествующие первому нечетному отрицательному числу
Здравствуйте, уважаемые форумчане! Пожалуйста, помогите решить задачи на динамические массивы... №1 №2


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru