Поменять строки местами
4761
13
Нужно в текстовом файле, типа блокнотного, поменять местами строки на обратную последовательность - чтобы первая стала последней, а последняя первой.
Руками както напрягает (строк много). Может както автоматизировать?
strannik
Может, AWK посмотреть? Он на обработку строк заточен. А так с разбегу из готового ничего в голову не приходит, кроме C++ :миг:
strannik
Вот уж чтоб не изобретать велик и не связываться с программированием (хотя там программировать то на 2 минуты), закачиваешь в Excel, добавляешь цифровой столбец от 1 до... Делаешь обратную сортировку по этому столбцу, удаляешь его. То, что осталось, сохраняешь.
strannik
:biggrin:
использовать ексель самое простое конешно )))
cat original_file.txt | perl -e "@a = < > ; @a = reverse @a; print join("\n",@a);" > reversed_file.txt
Mad_Dollar
С перлом не знаком , а вот с php немного баловался. По крайней мере прочитать и записать смогу. А инвертировать в нем как?

И про ехсель спасибо, чтото не подумал про него. В таких случаях мультиедит обычно вспоминается, но он был в досе.
strannik
Дельфу найдешь, поди? Дарю

var iStr, outStr: TStringList;
i: integer;
begin
iStr := TStringList.Create; outStr := TStringList.Create;
iStr.LoadFormFile('...');
for i := 0 to iStr.Count-1 do outStr.Add(iStr[iStr.Count-1-i]);
outStr.SaveToFile('...');
iStr.Free; outStr.Free;
end;
Mad_Dollar
tac file.txt &gt; file_reversed.txt
Что изобретать-то?
pavelv
Сильно :respect:
Тоже не знал, даже не слышал.
ASGS
Просто область использования этой команды довольно специфичная, для узенького круга задач:улыб:
pavelv
tac file.txt > file_reversed.txt
А это в чем? И как использовать?
strannik
Э... Ну вообще-то это linux, но можно и в windows Cygwin поставить, там тоже будет работать. Но в этом случае, наверное, проще руками исправить
strannik
А поиск с заменой не канает?
ganymed
Не понял. А причем тут поиск с заменой?