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