Re: Аналог утилиты tac для сжатого файла

2012-02-16 Пенетрантность Serhiy Storchaka
16.02.12 12:39, Alexander Galanin написав(ла): Грязная работа по разбору уже сделана авторами libzip, а индекс в памяти — лично мной в fuse-zip. Осталось только смонтировать архив. Тогда да, распаковка очень проста (если не нужно реверсить строки пока ещё идёт добавление). Упаковка сложнее.

Re: Аналог утилиты tac для сжатого файла

2012-02-16 Пенетрантность Alexander Galanin
On Thu, 16 Feb 2012 09:32:05 +0200 Serhiy Storchaka wrote: > 15.02.12 21:32, Alexander Galanin написав(ла): > > Это смотря как распаковывать… > Не подходит по условию. Раз для топикстартера даже простой внешний > индекс выглядит «некрасиво», то разбирать бинарный CentralDir и > создавать индекс

Re: Аналог утилиты tac для сжатого файла

2012-02-15 Пенетрантность Serhiy Storchaka
15.02.12 21:32, Alexander Galanin написав(ла): Это смотря как распаковывать. Если распаковщик будет читать Central Directory, то там в худшем случае надо пробегаться по списку всех файлов, размер которого линейно зависит от N (по условию). Однако если считать CentralDir и положить хотя бы в map (

Re: Аналог утилиты tac для сжатого файла

2012-02-15 Пенетрантность Alexander Galanin
On Wed, 15 Feb 2012 17:21:20 +0200 Serhiy Storchaka wrote: > > Пришло в голову, что zip архив позволяет добавлять файлы к архиву, и > > утилитка для этого дела есть, любезно написанная когда-то Anton > > Kovalenko: > > | zipput archive.zip file-name > > Интересно, какая производительность такого

Re: Аналог утилиты tac для сжатого файла

2012-02-15 Пенетрантность Serhiy Storchaka
13.02.12 23:01, Alexey Pechnikov написав(ла): 14 февраля 2012 г. 0:01 пользователь Alexander Galanin написал: Раз уж допустимо менять формат входных данных, то почему бы не хранить информацию в виде россыпи из гзипнутых файлов по N строк? Чтобы за просто так "порвать" диск? Очень сильно думаю

Re: Аналог утилиты tac для сжатого файла

2012-02-15 Пенетрантность Serhiy Storchaka
13.02.12 21:34, Alexey Pechnikov написав(ла): Кажется, стоит дополнить - разумеется, сжимаются строки ненулевой длины, но достаточно малые для того, чтобы имело смысл применить построчное сжатие; скажем, длина строк от 100 до 1000 байт. Подойдет и вариант поблочного сжатия (например, блоками по

Re: Аналог утилиты tac для сжатого файла

2012-02-14 Пенетрантность Andrey Rahmatullin
On Tue, Feb 14, 2012 at 05:29:08PM +0400, Alexander wrote: > а может стоит посмотреть в сторону свойств файловых систем? например, zfs > умеет сжимать "прозрачно" Уже предлагали. -- WBR, wRAR signature.asc Description: Digital signature

Re: Аналог утилиты tac для сжатого файла

2012-02-14 Пенетрантность Alexey Pechnikov
> Re: Аналог утилиты tac для сжатого файла > dimas > Tue, 14 Feb 2012 00:32:02 -0800 > автор, я правильно понимаю. что текстовый файл - это некий очень большой лог, > генерируемый в постоянном режиме некой coolprog? Не хотел никого провоцировать, потому не давал описания задачи

Re: Аналог утилиты tac для сжатого файла

2012-02-14 Пенетрантность dimas
автор, я правильно понимаю. что текстовый файл - это некий очень большой лог, генерируемый в постоянном режиме некой coolprog? по-моему, имеет смысл натравить на него logrotate, конфиги для него пишутся просто, в мане все расписано. настроить его, чтобы при достижении определенного размера (500M

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Иван Лох
On Tue, Feb 14, 2012 at 01:01:04AM +0400, Alexey Pechnikov wrote: > Чтобы за просто так "порвать" диск? Очень сильно думаю, что в любом > скриптовом языке fsync зовется после записи каждого файла... так что > никак не вариант. А вообще хватило бы и двух файлов - с блоками и со > смещениями блоков

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Alexey Pechnikov
14 февраля 2012 г. 0:01 пользователь Alexander Galanin написал: > Раз уж допустимо менять формат входных данных, то почему бы не хранить > информацию в виде россыпи из гзипнутых файлов по N строк? Чтобы за просто так "порвать" диск? Очень сильно думаю, что в любом скриптовом языке fsync зовется п

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Alexander Galanin
On Mon, 13 Feb 2012 23:34:30 +0400 Alexey Pechnikov wrote: > Кажется, стоит дополнить - разумеется, сжимаются строки ненулевой > длины, но достаточно малые для того, чтобы имело смысл применить > построчное сжатие; скажем, длина строк от 100 до 1000 байт. Раз уж допустимо менять формат входных д

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Alexey Pechnikov
Кажется, стоит дополнить - разумеется, сжимаются строки ненулевой длины, но достаточно малые для того, чтобы имело смысл применить построчное сжатие; скажем, длина строк от 100 до 1000 байт. Подойдет и вариант поблочного сжатия (например, блоками по 16...256 килобайт). Как очень простой вариант, м

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Artem Chuprina
> > А в типичном нам нужно хранить не полный вектор отступов, а только > > те, которые еще нужны, а их вряд ли много - один, ну, два. > > Так файл-то надо задом наперёд пройти. Так что сначала дойти до конца, > расставив контрольные точки, а потом идти с конца, когда их можно будет > исключать. Н

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Alexander Galanin
On Mon, 13 Feb 2012 19:48:10 +0400 Artem Chuprina wrote: > Ну, в тяжелом случае (файл состоит из одних переводов строки или > чего-то очень близкого, что можно сжать в один блок) нам все равно > придется разжать весь файл, если пользоваться zlib, а не лезть в > структуру уже блока грязными ногами

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Artem Chuprina
> > n^2 это в данном случае бесконечность. Понятно, что надо сохранять вектор > > отступов > > блоков на первом проходе.. > > Тут на интересную задачку можно накопать, если не знать про входные данные > более > ничего :) > > Если хранить вектор отступов, то памяти при работе потребуется M = >

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Alexander Galanin
13.02.2012 17:12, Иван Лох пишет: n^2 это в данном случае бесконечность. Понятно, что надо сохранять вектор отступов блоков на первом проходе.. Тут на интересную задачку можно накопать, если не знать про входные данные более ничего :) Если хранить вектор отступов, то памяти при работе потре

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Иван Лох
On Mon, Feb 13, 2012 at 05:01:16PM +0400, Alexander Galanin wrote: > 13.02.2012 16:56, Иван Лох пишет: > >On Mon, Feb 13, 2012 at 06:51:48PM +0600, Andrey Rahmatullin wrote: > >>On Mon, Feb 13, 2012 at 04:30:12PM +0400, Alexey Pechnikov wrote: > >>>Большой файл (больше размера ОЗУ и свободного диск

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Andrey Rahmatullin
On Mon, Feb 13, 2012 at 04:56:53PM +0400, Иван Лох wrote: > > > Большой файл (больше размера ОЗУ и свободного дискового пространства) > > > сжат, например, с помощью gzip или любого другого потокового > > > упаковщика. Надо его разжать, причем с реверсом строк "на лету", не > > > читая весь файл в

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Alexander Galanin
13.02.2012 16:56, Иван Лох пишет: On Mon, Feb 13, 2012 at 06:51:48PM +0600, Andrey Rahmatullin wrote: On Mon, Feb 13, 2012 at 04:30:12PM +0400, Alexey Pechnikov wrote: Большой файл (больше размера ОЗУ и свободного дискового пространства) сжат, например, с помощью gzip или любого другого потоков

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Иван Лох
On Mon, Feb 13, 2012 at 06:51:48PM +0600, Andrey Rahmatullin wrote: > On Mon, Feb 13, 2012 at 04:30:12PM +0400, Alexey Pechnikov wrote: > > Большой файл (больше размера ОЗУ и свободного дискового пространства) > > сжат, например, с помощью gzip или любого другого потокового > > упаковщика. Надо его

Re: Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Andrey Rahmatullin
On Mon, Feb 13, 2012 at 04:30:12PM +0400, Alexey Pechnikov wrote: > Большой файл (больше размера ОЗУ и свободного дискового пространства) > сжат, например, с помощью gzip или любого другого потокового > упаковщика. Надо его разжать, причем с реверсом строк "на лету", не > читая весь файл в память и

Аналог утилиты tac для сжатого файла

2012-02-13 Пенетрантность Alexey Pechnikov
Большой файл (больше размера ОЗУ и свободного дискового пространства) сжат, например, с помощью gzip или любого другого потокового упаковщика. Надо его разжать, причем с реверсом строк "на лету", не читая весь файл в память и не сохраняя на диск. Понятно, что задача выполнима, вопрос, существует л