YuS_2

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору BorlandIMHO 15-11-2016 Цитата: Я, кажется, вполне явно указал, при соблюдении какого условия он справится?.. | Может и указали, но сами-то цифры никак выравниваться не хотят, увы... Это верно относительно приведенного кода, в том самом сообщении, где было указано условие, то бишь: 15-11-2016 Цитата: Код: sort /+40 /R <"File to sort.txt" >"Sorted File.txt" | | так что, зря Вы так эмоционально воспринимаете текст... BorlandIMHO 15-11-2016 Цитата: Ваш набор (благо, там всего один столбец) можно отсортировать при помощи sort, хотя придётся действовать через ( ! ) и использовать временные файлы. Алгоритм: дополнить ведущими пробелами для выравнивания по правому краю, отсортировать во временный файл, убрать лишние пробелы. Писать код лень, но идею, я думаю, вы и так поняли. | А сценарии batch, очень часто, пишутся через то самое место... и по идее, мне-то идеи зачем, в данном случае? У меня их у самого километр, а лень одолевает не меньше Вашего. Но Вы правы, невозможного, в обсуждаемом случае, ничего нет: 15-11-2016 Цитата: - можно так, а можно и по-другому, особой разницы нет (при небольшом объеме текста, естественно)... главное, что результат получен. Linksach 15-11-2016 Цитата: а нельзя в коде убрать чтоб не было символа # перед цифрами | Можно. Как-то так: Код: @echo off sed -r "s/ *([0-9]+)$/ #\1/" test.txt|gsort -t # -n -k 2 -r -o tmp sed -r "s/#([0-9]+)$/ \1/" tmp>test_out.txt del tmp pause | или вообще без временных файлов, в одну строку: Код: @echo off sed -r "s/ *([0-9]+)$/ #\1/" test.txt|gsort -t # -n -k 2 -r|sed -r "s/#([0-9]+)$/ \1/" >test_out.txt pause |
---------- scio me nihil scire |
| Всего записей: 3219 | Зарегистр. 03-02-2009 | Отправлено: 08:41 15-11-2016 | Исправлено: YuS_2, 08:46 15-11-2016 |
|