Re: Редактор для шибко больших файлов

From
Andrey N. Oktyabrski (2:5020/400)
To
Dmitry Miloserdov
Date
2008-10-27T11:52:26Z
Area
RU.UNIX.SOLARIS
From: "Andrey N. Oktyabrski" <ano@bestmx.ru>

Dmitry Miloserdov wrote:
> "Andrey N. Oktyabrski" <ano@bestmx.ru> сообщил/сообщила в новостях
>>> Но 4.4G это не памяти мало это largefile так что только sed ;)
>> Вот видимо именно поэтому ed его тоже не открыл. Как и emacs. Но не может 
>> же быть, чтобы не было такого редактора. Блин, я такое в универе в 
>> качестве зачётной задачки когда-то делал. Правда, на borland pascal & 
>> turbo vision, да и потерялось оно за столько лет - не восстанавливать же 
>> "по памяти" :-) Но суть не в этом - неужели никто не озадачивался? Не 
>> верю.
> Очень сомневаюсь что делал именно это. bp+tv это дос так что ни о каких
> 4гигабайтных файлах речь не может идти 4 гига теоретический максимум
> для системного вызова, 2гига  максимум для файловой системы. И гораздо
> меньший практический максимум в силу отсутствия sparse файлов и
> применимых в те времена носителях.
Делал именно это: редактор всасывал в память окно размером в несколько 
экранов. В процессе редактирования записывался лог, который при записи 
файла применялся.

> Задача довольно нетипичная. Насчет восстановить по памяти
>  - не надо. Достаточно взять исходник ed, ex или vi/vim и откомпилировать с
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
Нет, тут скорее надо изготовить скрипт, который будет выкусывать из 
большого файлА кусок, скармливать его vi[m]'у (точнее, произвольному 
редактору - скажем, $EDITOR) и генерировать diff'ы, которые потом 
применять. Как делать нефиг будет, можно подумать над этим с точки 
зрения юзабилити...
--- ifmail v.2.15dev5.4
 * Origin: Tambov State Technical University (2:5020/400)
SEEN-BY: 236/100 450/1024 461/640 469/142 999 4625/8 5000/5000 5006/1 5007/1
SEEN-BY: 5010/70 5011/13 5012/46 5015/28 5019/40 5020/175 194 400 545 902 1922
SEEN-BY: 5020/2238 4441 5021/29 5025/3 5030/1080 1957 5035/38 5036/1 5045/7
SEEN-BY: 5051/15 5054/1 4 8 9 28 37 5060/88 5061/15 120 5062/10 5064/7 5066/18
SEEN-BY: 5075/5 5080/68 5085/13 5095/20 5096/18 6001/10 6009/1
PATH: 5020/400 545 5054/1 37