Текстовий редактор для редагування великого (4,3 ГБ) простого текстового файлу


86

Чи є текстовий редактор, який може редагувати такий файл?

Я спробував:

  • gedit
  • kate
  • nano
  • vim
  • mcedit

без успіху.


8
Вам потрібно відредагувати його чи просто переглянути? Якщо останні, ви можете просто використовувати "менше" від CLI.
Містер Шунц

3
@MrShunz: так, я хочу відредагувати файл. @Bakhtiyor: відповідь "ТАК" :)
cupakob

2
Рекомендую відредагувати своє запитання, щоб згадати той факт, що ви хочете відредагувати файл. Це зробило б так, щоб людям не довелося шукати коментарі, щоб розібратися у вашому питанні та / або якщо ваше запитання досить схоже на те, що у них є.
Firefeather

1
Ви будь-яким випадком намагаєтесь відкрити базовий файл 42 zip bomb? У мене була ця проблема, і я виявив, що програма під назвою "010 редактор" працює добре

Пов’язано з переповненням стека: Робота з величезними файлами в Linux
Eliah Kagan

Відповіді:


81

Інший метод - це використання split. Розділіть файл на 8 частин і обробляйте файли за допомогою редактора. Після цього ви знову збираєте файли.

split -b 53750k <your-file>

cat xa* > <your-file>


SYNOPSIS
       split [OPTION]... [INPUT [PREFIX]]

-a, --suffix-length=N
              use suffixes of length N (default 2)

       -b, --bytes=SIZE
              put SIZE bytes per output file

       -C, --line-bytes=SIZE
              put at most SIZE bytes of lines per output file

       -d, --numeric-suffixes
              use numeric suffixes instead of alphabetic

       -l, --lines=NUMBER
              put NUMBER lines per output file

здається, це найкраще рішення на даний момент ...
cupakob

9
Зверніть увагу, що багато редакторів додадуть символ нового рядка в кінець відредагованого файлу, і робити це, не повідомляючи вас! Для отримання додаткової інформації див. Як відмовити Gedit, Gvim, Vim, Nano від додавання символу нового рядка кінця файлу? askubuntu.com/q/20871/2670
Пітер.O

приємний спосіб ... і тоді вам слід використовувати vim з окремими частинами ... Я ненавиджу vim: P, але він виграє всіх інших редакторів тут
Postadelmaga

1
@ Peter.O: Чи змінилося посилання? Мені важко знайти інформацію про проблему символів нового рядка за цією URL-адресою. : / Оновлення: Знайдено посилане
rinogo

3
(Коротше кажучи, використовуйте, nano --nonewlinesщоб уникнути автоматичного додавання нових рядків)
rinogo

39

Спробуйте Джо . Я просто використовував його для редагування дамп-файлу ~ 5G SQL. Щоб відкрити файл, потрібно кілька хвилин, щоб зберегти його, дуже мало використовуючи своп (у системі з 4G ОЗУ).


Для мене це вдало відредагував XML-файл 1 Гб.
digitaljoel

Добре працює з файлами 2 Гб
Дамір Олежар

Спробували на дамп-файлі 14G SQL, але не вдалося з помилкою вводу-виводу. (машина має 3 Гб оперативної пам’яті та 3 Гб Swap).
tehwalrus

1
Оце Так! "Джо" проходить - де багато аварій!
1111161171159459134

дав Джо 4,6 гбіт-файл, і нічого не сталося протягом декількох хвилин, тому здався Hex Fiend відкриває його миттєво, але, схоже, ви не можете редагувати в ньому
balupton

17

ви їх не знайдете. Якщо ви хочете замінити деякі рядки в цьому файлі, ви можете переглянути lessабо перетерти і використовувати sedдля пошуку та заміни деяких рядків.

подобається це:

sed -e 's/oldstuff/newstuff/g' inputFileName > outputFileName

У Вікіпедії є кілька корисних прикладів: http://en.wikipedia.org/wiki/Sed


3
Або особливо з -iпрапором (на місці), тому він поводиться по суті як текстовий редактор, який замінить вихідний вміст файлу.
АБО Mapper

Не використовуйте sed -i; ось для чого ed.
fkraiem

14

Захотіть, якщо вам подобається, але такі великі файли стають непрактичними, якщо ви хочете зробити "звичайне" редагування; наприклад, ви не хочете занадто часто зберігати свої зміни; це займе занадто довго :)

Якщо це одноразово, splitі він joinбуде працювати досить добре, і це досить просто, щоб подрібнити його на керовані шматки, а потім знову з'єднати фрагменти ... Візьміть до уваги, що багато редакторів додадуть символ нового рядка до кінця відредагованого файл, і робити це, не повідомляючи вас! Для отримання додаткової інформації див. Як відмовити Gedit, Gvim, Vim, Nano від додавання символу нового рядка кінця файлу?

Спробуйте Gvim, якщо ви дійсно хочете відредагувати такий великий файл .... Я щойно завантажив у нього файл 3,9 ГБ, і все здається нормальним ...

Ось цікаве посилання з цього питання, на stackoverflow


не працює з gvim ....
cupakob

1
@upakob: Щойно він успішно завантажив 4,5 ГБ файл у мою систему, використовуючи Gvim ... На завантаження пішло 6 хвилин. Ви досить довго чекали? (Це те, що я маю на увазі збереження файлу. Це займе багато часу) ... Спробуйте запустити iotopдивитися його статистику вводу / виводу під час завантаження. Система монітора показує, що у мене є 3,2 ГБ оперативної пам’яті (які головоломки мені, як у мене є 4 ГБ) ...
Peter.O

1
@upakob: Я пробував 8 Гб цього разу, і Gvim успішно завантажив його ... Тож Gvim може "технічно" обробляти великі, більші, а може навіть і "НАЙБІЛЬШІ" файли, але навіть так, це дещо "непрактично" (якщо ви не схожі на мене, готові чекати 41 хвилину, щоб завантажити 8 Гб .. :) ... але я не думаю, що я буду заважати робити це знову .....
Peter.O

Здається, ви пов’язали неправильне запитання.
psusi

Ви, здається, змінили перше посилання таким же, як і друге, а не на те, "як зупинити gedit тощо від додавання кінця нового рядка файлу".
psusi

11

Використовуйте glogg - швидкий, розумний провідник журналів: http://glogg.bonnefon.org/


4
Ласкаво просимо на Askubuntu.com! Хоча запропонований пакет може вирішити проблему, зауважте, що glogg спрямований на пошук великих файлів, а не на їх фактичне редагування.
Джос

спробував це, він завжди роздувається.
Каїс

11

Існує ще один дуже простий і швидкий спосіб заміни вмісту в дуже великих файлах (який працює замість редагування великих дампів mysql)

Перш за все вам слід встановити опівночі коммандер - чудовий файловий менеджер для систем Linux

sudo apt-get install mc

Після цього ви можете відкрити будь-який файл будь-якого розміру в «режимі перегляду» (за допомогою ярлика F3), перейти в режим HEX (ярлик F4) і активувати режим редагування (ярлик F2).

Наприклад, у мене був дамп на 3 Гб mysql, де я хочу видалити деяку лінію SQL. Я відкриваю режим перегляду, знаходжу рядок, відкриваю шістнадцятковий режим і замінюю вміст перед необхідним рядком на коментар MYSQL (рядок "-", шістнадцятковий код 2D 2D 20).

Приклад: mc hex view


2
Мої 5 копійок - MC не вдалося відредагувати файл 110 Гб, але відкрився в режимі перегляду.
Андрон

@Andron ви все ще можете замінити вміст у режимі перегляду
user10635

цікаво. Чи можете ви описати як?
Андрон

1
@Andron добре, я це вже описав у своїй відповіді. :) Відкрийте режим перегляду, натисніть F4 для шестигранної та замініть будь-який вміст у будь-якому файлі незалежно від розміру.
користувач10635

о, ти маєш рацію. Лише зауважте, що в моєму випадку мені потрібно замінити довгу струну (и), і тому для мене це не нормально. Але так, загалом це можливо.
Андрон



4

neditТекстовий редактор був навколо протягом довгого часу , і цілком здатний. Він може відкрити текстовий файл 1.9Gb приблизно за 20 секунд. Це графічний інтерфейс, схожий на Windows, із усіма стандартними функціями редагування тексту, які ви очікуєте, як підсвічування синтаксису, відступ, нумерація рядків тощо.

Якщо ви хочете змінити розмір вікна, зробіть це перед відкриттям великого файлу. Мотив X11 трохи повільний у зміні розміру, але це також запит на оподаткування.

Він є у всіх стандартних сховищах, тому встановіть:

sudo apt-get install nedit

Це GPLv2 з відкритим кодом.

https://sourceforge.net/projects/nedit/

Я перебираю текстові файли 30-40 Мб і neditлегко обробляє їх.


3

Ви можете відкрити файл за допомогою hexedit. Однак ви зможете лише змінювати текст, а не додавати чи видаляти його.


2

Відповідно до цієї статті у Вікіпедії Порівняння текстових редакторів VIM серед інших. Я збирався запропонувати Geany, але є? в області для підтримки великих файлів ...

EDIT: Я пішов напередодні, спробував з geany і здався, почекаючи 10 хвилин з 3 ядрами прив’язаними і в основному всією моєю пам'яттю (віртуальною та фізичною), яку я використовував весь час ... Не переконливо, оскільки, можливо, вдалося б відкрити її, якщо я був би терплячішим. Я шукав і не знайшов ніяких налаштувань / уподобань для обробки великих файлів по-різному.

Найкраще мені подобається відповідь fred.bear.


2

У Windows у вас є TextPad, EditPad та EmEditor.

У Linux у вас є
кінетика:
http://turtlewar.org/projects/editor/

і багато шестинадцять редакторів, таких як:
благословіть
http://home.gna.org/bless/
або
wxhexeditor
http://wxhexeditor.sourceforge.net/home.php

Усі вони дозволяють редагувати дуже великі файли (навіть терабайт), і ви можете це зробити легко, не потребуючи розділення та рекомбінації файлу, який схильний до помилок і громіздких.


1

Ми потрапляємо в ситуацію, коли файл журналу накопичується до 6 Гб і потрібно шукати за датою чи рядком. Мало відомий текстовий редактор може підтримати такий великий файл.

Знайшов редактор JOE, який міг завантажувати мій файл 6 Гб за 2 хв і дав можливість вивчити файл.

Версія Windows (sourceforge.net)

Ubuntu (sourceforge.net)


0

Я працюю з NetBeans : в цьому контексті це краще, ніж Eclipse.

Я знаю, що це для розробників, але ви можете відкрити з ним будь-який звичайний текстовий файл.


0

Emacs зробить цю роботу (я редагував у ній 10 + GiB файлів раніше), але приблизно такий же непривітний для нового користувача, як vim, тому може не відповідати вашим потребам. Крива навчання досить крута.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.