Любой язык - [решено] Сортировка строк в текстовом файле по дате

Аватара пользователя
TRaMeLL

Любой язык - [решено] Сортировка строк в текстовом файле по дате

Сообщение TRaMeLL »

Здравствуйте!



Есть текстовый файл, каждая строка в котором начинается с даты в формате DD.MM.YYYY, но не по порядку, нужно отсортировать строки по дате.



Т. е. в файле имеем:



10.07.2017 AAAA

13.07.2017 DDDD

11.07.2017 BBBB

12.07.2017 CCCC



Нужно получить:



10.07.2017 AAAA

11.07.2017 BBBB

12.07.2017 CCCC

13.07.2017 DDDD



Желательно реализовать это в CMD\BAT\VBS
Вложения
sample.zip
(2.66 КБ) 0 скачиваний
sample.zip
(2.66 КБ) 0 скачиваний
Аватара пользователя
Iska

Re: Любой язык - [решено] Сортировка строк в текстовом файле по дате

Сообщение Iska »

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




Цитата TRaMeLL:



Желательно реализовать это в CMD\BAT\VBS
Любой язык - [решено] Сортировка строк в текстовом файле по дате




Устроил бы Вас Microsoft LogParser (буде окажется возможным решение посредством него)?
Аватара пользователя
yurfed

Re: Любой язык - [решено] Сортировка строк в текстовом файле по дате

Сообщение yurfed »

TRaMeLL, если использование скрипта не принципиально, AkelPad с этим прекрасно справляется. Заодно сразу видите результат.

"Строки по числовому возрастанию/убыванию"
Аватара пользователя
TRaMeLL

Re: Любой язык - [решено] Сортировка строк в текстовом файле по дате

Сообщение TRaMeLL »

Добавил, размер примерно до 1Мб, сортировка по следующему содержимому не нужна, только по дате. Нужен максимально простой запуск обработки, чтобы ничего-нигде на надо было щелкать лишнего, не знаю насчет Microsoft LogParser, никогда о нём раньше не слышал, если с ним это возможно, то можно и посредством него.
Аватара пользователя
Kazun

Re: Любой язык - [решено] Сортировка строк в текстовом файле по дате

Сообщение Kazun »

PowerShell:

Код:

Код: Выделить всё

Get-Content sample.txt | Sort { [datetime]::ParseExact($_.split("|")[0],"dd.MM.yyyy",$null)} | Out-File r.txt
Аватара пользователя
TRaMeLL

Re: Любой язык - [решено] Сортировка строк в текстовом файле по дате

Сообщение TRaMeLL »

Цитата TRaMeLL:



не знаю насчет Microsoft LogParser, никогда о нём раньше не слышал
Любой язык - [решено] Сортировка строк в текстовом файле по дате




Это уже достаточно старая разработка Microsoft, особо ценная тем, что для обработки текстовых данных (в том числе различных логов) по сравнению с прочими скриптовыми радостями (даже посредством OLE DB) является наиболее эффективным из известных мне средств. Особенно на достаточно крупных, сравнимых с объёмами оперативной памяти, файлах.
Аватара пользователя
TRaMeLL

Re: Любой язык - [решено] Сортировка строк в текстовом файле по дате

Сообщение TRaMeLL »

Iska, погуглил, штука крутая, но для моей задачи, сильно overkill, как орехи кувалдой колоть. И, как я понял, ставится отдельным компонентом, вариант с PowerShell, похоже, вполне работоспособный, потестирую еще пару дней, но думаю, что всё будет ОК.
Аватара пользователя
TRaMeLL

Re: Любой язык - [решено] Сортировка строк в текстовом файле по дате

Сообщение TRaMeLL »

Iska, погуглил, штука крутая, но для моей задачи, сильно overkill, как орехи кувалдой колоть. И, как я понял, ставится отдельным компонентом, вариант с PowerShell, похоже, вполне работоспособный, потестирую еще пару дней, но думаю, что всё будет ОК.
Аватара пользователя
TRaMeLL

Re: Любой язык - [решено] Сортировка строк в текстовом файле по дате

Сообщение TRaMeLL »

TRaMeLL, да, циферки сдвинулись, должно быть: "$_[6..9]$_[3..4]$_[0..1]"

это просто порядковые номера символов в исходной строке из которых формируется критерий сортировки ГодМесяцЧисло
Ответить

Вернуться в «Скриптовые языки администрирования Windows»