Текстовий редактор для відкриття великих (гігантських, величезних, великих) текстових файлів [закрито]


1023

Я маю на увазі 100+ МБ великих; такі текстові файли можуть підштовхувати конверт редакторів.

Мені потрібно переглянути великий XML-файл, але не можу, якщо редактор баггі.

Будь-які пропозиції?


166
Насправді текстові файли розміром 100+ Мб або навіть 1+ ГБ не такі вже й рідкісні, як ви можете подумати (тобто файли журналів із зайнятих серверів).
Андерс Сандвіг

15
Підступність: І не зовсім текст. Я думаю, що вимоги до читання текстових файлів та читання бінарних файлів дещо відрізняються. Однак ви можете передати його через base64 або uuencode.
Джої

2
Це повинно бути по крайней мере , подібне питання або навіть пов'язані , як це було запропоновано 18 місяців до ... stackoverflow.com/questions/102829 / ...
ONDEV

1
Я також шукав відповідь на це точне запитання, щоб прочитати деякі величезні файли журналів, які я створив!
HorseloverFat

1
@BlairHippo Я відчуваю те саме, я майже нервую, коли задаю питання, бо великі шанси, що хтось скаже "Закрийте це, він повинен замість цього зайти в WeverExchange"
Rodolfo

Відповіді:


1386

Безкоштовні глядачі лише для читання:

  • Переглядач великих текстових файлів (Windows) - повністю настроювана тематизація (кольори, шрифти, загортання слів, розмір вкладки). Підтримує горизонтальний і вертикальний розріз. Також підтримуйте пошук файлів та пошук за допомогою регулярного вибору. Дуже швидкий, простий і має невеликий розмір виконавця.
  • klogg (Windows, macOS, Linux) - підтримується виделка glogg , його головна особливість - регулярний пошук виразів. Він також може переглядати файли, дозволяє користувачеві розмічати лінії та вбудовувати серйозні оптимізації. Але з точки зору інтерфейсу користувача, це некрасиво і незграбно.
  • LogExpert (Windows) - "Заміна графічного інтерфейсу наtail." Це дійсно аналізатор файлів журналу, не великий переглядач файлів, і для одного тесту знадобилося 10 секунд і 700 Мб оперативної пам’яті, щоб завантажити файл 250 Мб. Але його вбивцьними рисами є колоннізатор (розбір журналів, які знаходяться у форматі CSV, JSONL тощо та відображаються у форматі електронних таблиць) та підсвітка (показувати рядки певними словами в певних кольорах). Також підтримує наступні файли, вкладки, мультифайли, закладки, пошук, плагіни та зовнішні інструменти.
  • Лістер (Windows) - Дуже маленький і мінімалістичний. Це один виконуваний файл, ледь 500 кб, але він все ще підтримує пошук (за допомогою регулярних виразів), друку, режим шестигранного редактора та налаштування.
  • loxx (Windows) - підтримує наступні файли, виділення, рядки, величезні файли, регулярний вираз, декілька файлів та переглядів та багато іншого. Безкоштовна версія не може: обробляти регулярні вирази, фільтрувати файли, синхронізувати часові позначки та зберігати змінені файли.

Безкоштовні редактори:

  • Ваш звичайний редактор або IDE. Сучасні редактори можуть обробляти дивно великі файли. Зокрема, Vim (Windows, macOS, Linux), Emacs (Windows, macOS, Linux), Блокнот ++ (Windows), Піднесений текст (Windows, macOS, Linux) та VS-код (Windows, macOS, Linux) підтримують великі (~ 4 ГБ) файлів, якщо у вас є оперативна пам’ять.
  • Редактор великих файлів (Windows) - відкриває та редагує файли TB +, підтримує Unicode, використовує мало пам’яті, має особливості XML та включає двійковий режим.
  • GigaEdit (Windows) - підтримує пошук, статистику символів та налаштування шрифту. Але це баггі - з великими файлами він дозволяє лише перезаписувати символи, не вставляючи їх; він не поважає LF як лінійний термінатор, лише CRLF; і це повільно.

Вбудовані програми (не потрібно встановлення):

  • менше (macOS, Linux) - традиційний інструмент пейджера командного рядка Unix. Дозволяє переглядати текстові файли практично будь-якого розміру. Можна встановити і в Windows.
  • Блокнот (Windows) - гідний з великими файлами, особливо із вимкненим обгортанням слів.
  • БІЛЬШЕ (Windows) - Це стосується WindowsMORE, а не Unixmore. Консольна програма, яка дозволяє переглядати файл, по одному екрану.

Веб-переглядачі:

  • readfileonline.com - ще один переглядач великих файлів HTML5. Підтримує пошук.

Платні редактори:

  • 010 Editor (Windows, macOS, Linux) - відкриває гігантські (розміром до 50 ГБ) файли.
  • SlickEdit (Windows, macOS, Linux) - відкриває великі файли.
  • UltraEdit (Windows, macOS, Linux) - відкриває файли об'ємом більше 6 Гб, але конфігурацію потрібно змінити, щоб це було практично: Меню »Додатково» Конфігурація »Обробка файлів» Тимчасові файли »Відкрити файл без тимчасового файлу ...
  • EmEditor (Windows) - прекрасно обробляє дуже великі текстові файли (офіційно до 248 ГБ, але до 900 ГБ відповідно до одного звіту).

60
VIM, або Emacs ... виберіть свою отруту, і обидва будуть обробляти будь-який файл, який ви кинете на них. Я особисто віддаю перевагу Emacs, але обидва будуть бити блокнот без того, як гикавка.
Майк Стоун

25
Emacs має максимальний розмір буфера, залежно від основної архітектури (32 або 64 біта). Я думаю, що в 32-бітових системах ви отримуєте помилку "перевищений максимальний розмір буфера" для файлів більше 128 Мб.
Rafał Dowgird

82
Я щойно спробував Notepad ++ з файлом журналу 561 Мб, і він сказав, що це занадто великий
барфун

9
@Rafal Цікаво! Схоже, на 64 біт це ~ 1024 петабайта. Причина пов’язана з тим, що emacs має відслідковувати буферні позиції (такі як точка)
baudtack

79
Але будьте обережні, vim працюватиме лише до тих пір, поки у відповідних файлів буде достатньо розривів рядків. Мені колись довелося відредагувати приблизно. 150 Мб файл без жодних розривів рядків, і довелося вдатися до gedit, оскільки vim не міг впоратися.
Бенно

192

Поради та рекомендації

менше

Чому ви використовуєте редактори, щоб просто подивитися на (великий) файл?

Під * nix або Cygwin просто використовуйте менше . (Є відома приказка - "менше є більше, більше чи менше" - тому що "менше" замінила попередню команду Unix на "більше", з додаванням, що можна прокрутити назад.) Пошук і навігація під меншим дуже схожий на Vim, але немає файлу підкачки та мало ОЗУ.

Тут менше порту Win32 у GNU. Дивіться розділ "менше" відповіді вище.

Perl

Perl хороший для швидких сценаріїв, а його ..оператор (flip-flop) забезпечує приємний механізм вибору для обмеження кількості сирої сировини, яку вам доведеться пробирати.

Наприклад:

$ perl -n -e 'print if ( 1000000 .. 2000000)' humongo.txt | less

Це дозволить отримати все, починаючи з 1 мільйона до 2 мільйонів рядків, і дозволить вам просіювати вихід вручну менше.

Ще один приклад:

$ perl -n -e 'print if ( /regex one/ .. /regex two/)' humongo.txt | less

Це починається з друку, коли "регулярний вираз один" щось знаходить, і припиняється, коли "регулярний вираз два" знаходить кінець цікавого блоку. Він може знайти кілька блоків. Просіяти вихід ...

logparser

Це ще один корисний інструмент, який ви можете використовувати. Для цитування статті у Вікіпедії :

logparser - це гнучка утиліта командного рядка, яку спочатку написав Габріель Джузеппіні, співробітник Microsoft, для автоматизації тестів на реєстрацію IIS. Він був призначений для використання в операційній системі Windows і був включений в інструменти IIS 6.0 Resource Kit. Поведінка logparser за замовчуванням працює як "конвеєр обробки даних", приймаючи вираз SQL у командному рядку та виводячи рядки, що містять відповідність для виразу SQL.

Microsoft описує Logparser як потужний універсальний інструмент, який забезпечує універсальний доступ до запитів до текстових даних, таких як файли журналів, XML-файли та файли CSV, а також до ключових джерел даних в операційній системі Windows, таких як Журнал подій, Реєстр, файлову систему та Active Directory. Результати вхідного запиту можуть бути відформатовані у користувальницькій формі на основі тексту, або вони можуть бути збережені для більш спеціальних цілей, таких як SQL, SYSLOG або діаграма.

Приклад використання:

C:\>logparser.exe -i:textline -o:tsv "select Index, Text from 'c:\path\to\file.log' where line > 1000 and line < 2000"
C:\>logparser.exe -i:textline -o:tsv "select Index, Text from 'c:\path\to\file.log' where line like '%pattern%'"

Відносність розмірів

100 Мб не надто великі. 3 Гб набуває великого розміру. Раніше я працював у центрі друку та пошти, який створив близько 2% американської пошти першого класу. Одна з систем, для якої я був технічним керівником, становила близько 15 +% від пошти. У нас було кілька великих файлів для налагодження тут і там.

І більше...

Сміливо додайте сюди більше інструментів та інформації. Ця відповідь є вікі спільноти чомусь! Нам усім потрібно більше порад щодо роботи з великою кількістю даних ...


8
+1, нещодавно у мене було кілька справді величезних xml-файлів (+1 гігабайт), які мені потрібно було подивитися. Я в Windows, і vim, emacs, блокнот ++ та декілька інших редакторів повністю задихалися від файлу до того моменту, коли моя система майже стала непридатною при спробі відкрити файл. Через деякий час я зрозумів, наскільки непотрібно насправді намагатися відкрити файл у -editor-, коли мені просто потрібно було переглянути його. Використовуючи cygwin (та якийсь розумний grep / less / sed-magic), я легко знайшов цікаву мені частину і міг її прочитати без зайвих клопотів.
wasatz

8
вам не потрібен cygwin менше, ви також можете використовувати його під windows: gnuwin32.sourceforge.net/packages/less.htm
ChristophK

2
Цей редактор XML також має великий компонент для перегляду файлів і надає забарвлення синтаксису також для величезних файлів. Файли не завантажуються повністю в пам'ять, тому документ з кількома ГБ не повинен бути проблемою. Крім того, цей інструмент також може перевірити великі документи XML ... На мою думку, один з найкращих підходів до роботи з величезними XML-даними.
lichtfusion

9
Гаразд, тому я просто виправив власне питання. lessзі загортанням слова повільно. less -Sбез загортання слів блискавка швидко навіть на великих лініях. Я знову щасливий!
Енді Браун

6
Чудова відповідь. Хочу зазначити, що якщо у вас встановлений Git для Windows, ви, ймовірно, також маєте Git bash, що включає less.
транзистор1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.