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

Сортировка в текстовом файле

22.10.2018, 10:34. Показов 4624. Ответов 6

Author24 — интернет-сервис помощи студентам
Здравствуйте, прошу помощи в следующем вопросе.

есть .txt файл со следующим содержимым:

asdf-12
sdfad-9
asdfwq-17
asfsfa-190

(если в общем, то шаблон такой (text-n))

Необходима сортировка по убыванию (чисел).
Вывод в следующем виде:
asfsfa-190
asdfwq-17
asdf-12
sdfad-9

Нужно исключительно в cmd.
Заранее благодарен.

Добавлено через 1 час 19 минут
upd: необходимо в cmd и Bash
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2018, 10:34
Ответы с готовыми решениями:

Найти в текстовом файле строку по заданному слову и заменить ей определённую часть строки в другом файле
Всех с Новым Годом! Наверное избитая тема, но все же... Задача такая: Существует два файла:...

Удаление в текстовом файле
Приветствую! Подскажите как батником удалить из текстовых файлов находящихся в каталоге...

Подсчет слов в текстовом файле
Добрый день! Пожалуйста помогите. Нужно создать батник, который будет получать в качестве...

Изменение строки в текстовом файле
Задача: изменить строку с номером версии в текстовом файле. Хотелось бы изменять версию первого...

6
5985 / 1994 / 323
Регистрация: 10.12.2013
Сообщений: 6,875
22.10.2018, 18:23 2
если bash, то надо в bash-ветке и продублировать;

компактным кросс-платформенным решением может являться реализация с использованием sqlite.

Предположим, что данные находятся в файле FILE.TXT,
а файл с инструкциями для sqlite называется MY.SQL
MY.SQL
T-SQL
1
2
3
4
create table line ( a text not null, b integer not null );
.separator -
.import FILE.TXT line
select * from line order by b desc;
строка для выполнения идентична для обоих сред:
Windows Batch file
1
sqlite3 < MY.SQL
Bash
1
sqlite3 < MY.SQL
3
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 9
22.10.2018, 22:50  [ТС] 3
благодарю за ответ. Понимаю что ваше решение оптимально, но, к сожалению, нужна реализация без sqlite, в виде кода в bat и sh ...
0
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 9
25.10.2018, 22:45  [ТС] 4
Мб есть какие-то идеи?
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
26.10.2018, 03:58 5
Лучший ответ Сообщение было отмечено gesr_s как решение

Решение

для cmd нет, там нет нормальной sort и заниматься извращением по перебиранию по разрядам и файлам числа чтобы выйти на правильную сортировку мало кто захочет.

Добавлено через 3 часа 33 минуты
очередной костыль:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
set "f1=file.txt"
set "f2=out.txt"
 
<"%f1%">+ (for /f "tokens=1* delims=-" %%a in ('more') do @echo %%b& set "$_%%a%%b=%%a-%%b")
:r
setlocal enabledelayedexpansion
 <+>$ (for /f %%a in ('more') do @echo %%a& if %%a gtr !max! set max=%%a)
 <$>+ (for /f %%a in ('find /v "%max%"') do @echo %%a)
 if defined max endlocal& >>"%f2%" (for /f "tokens=2* delims==-" %%a in ('set $_^|findstr /ec:"%max%"') do @echo %%a-%%b)& goto r
del+ $
pause& exit
почему костыль?
на больших числах, например: 51234567893, работать или не будет или неправильный результат даст
заточено только под задачу, смесь чисел с буквой или символом уже не будет сортировать
ну и куча временных файлов и скорость работы ...
1
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
26.10.2018, 05:24 6
Цитата Сообщение от gesr_s Посмотреть сообщение
Мб есть какие-то идеи?
Тебе для чего это всё ? В учебных целях ?

Заглядываешь в wikipedia и видишь, что алгоритмов сортировок много
  1. Сортировка пузырьком / Bubble sort
  2. Шейкерная сортировка / Shaker sort
  3. Сортировка пузырьком / Bubble sort
  4. Шейкерная сортировка / Shaker sort
  5. Сортировка расческой / Comb sort
  6. Сортировка вставками / Insertion sort
  7. Сортировка Шелла / Shellsort
  8. Сортировка деревом / Tree sort
  9. Гномья сортировка / Gnome sort
  10. Сортировка выбором / Selection sort
  11. Пирамидальная сортировка / Heapsort
  12. Быстрая сортировка / Quicksort
  13. Сортировка слиянием / Merge sort
  14. Сортировка подсчетом / Counting sort
  15. Блочная сортировка / Bucket sort
  16. Поразрядная сортировка / Radix sort
  17. Битонная сортировка / Bitonic sort

Изучаешь способы реализации различными языковыми средствами какую-нибудь одну, например, пузырьковую.
И понимаешь, что языковыми средствами cmd реализовать ничего нельзя, потому что cmd - это не полноценный язык программирования, а просто примитивный построчный интерпретатор своих внутренних директив. Плюс к этому имеется некоторое количество внешних консольных утилит. Из мизантропических соображений Microsoft таких утилит предоставил мало и ненадлежащего качества.

Что же делать?
Если цели учебные, то делать ничего не надо, поскольку пока ты со всем этим возился, то уже много чего узнал.
Если цели практические, то выше был показан один из способов и таких способов много.
Самое простое в настоящий момент это использовать powershell - командную оболочку Windows
и в соответств. разделе сайта тебе точно помогут, потому что в powershell такие задачи решаются очень просто.

Если ты студент и задача Сдал/Забыл, то, например, деньги, как всеобщий эквивалент, служащий мерой стоимости любых товаров и услуг, открывают все закрытые двери.
1
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 9
27.10.2018, 21:47  [ТС] 7
Благодарю за инфу
0
27.10.2018, 21:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2018, 21:47
Помогаю со студенческими работами здесь

Замена слов в текстовом файле
Здравствуйте уважаемые знатоки ,прошу вашей помощи.Нужен батник который производит замену слов на...

Форматирование текста в текстовом файле
Здравствуйте, помогите, пожалуйста! Есть файл txt с данными в строках которые разделены табами: ...

Поиск слова в текстовом файле
Коллеги, нужна помощь ваша. Я новичок и бьюсь уже 2-й день, ужас какой-то. С BAT\CMD сталкиваюсь...

Удаление слова в текстовом файле
Имеется файл в котором есть строка такого типа КС: 3623 06-T-17-03, и таких строк 98, надо...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru