Edytor tekstu do otwierania dużych (gigantycznych, ogromnych, dużych) plików tekstowych [zamknięte]


1023

Mam na myśli ponad 100 MB; takie pliki tekstowe mogą przesunąć kopertę edytorów.

Muszę przejrzeć duży plik XML, ale nie mogę, jeśli edytor jest wadliwy.

Jakieś sugestie?


166
W rzeczywistości pliki tekstowe o wielkości ponad 100 MB, a nawet 1+ GB, nie są tak rzadkie, jak mogłoby się wydawać (tj. Pliki dziennika z zajętych serwerów).
Anders Sandvig,

15
Sneakyness: I nie do końca tekst. Myślę, że wymagania dotyczące odczytu plików tekstowych i plików binarnych różnią się nieco. Możesz jednak przekazać go przez base64 lub uuencode.
Joey,

2
Powinno to być przynajmniej podobne pytanie lub nawet link, jak zadano 18 miesięcy wcześniej ... stackoverflow.com/questions/102829/…
ONDEV

1
Szukałem również odpowiedzi na to dokładne pytanie, aby przeczytać ogromne pliki dziennika, które wygenerowałem!
HorseloverFat

1
@BlairHippo Czuję to samo, prawie denerwuję się, gdy zadaję pytanie, ponieważ są duże szanse, że ktoś powie: „Zamknij to, zamiast tego powinno pójść w WhthingExchange”
Rodolfo,

Odpowiedzi:


1386

Bezpłatne przeglądarki tylko do odczytu:

  • Przeglądarka dużych plików tekstowych (Windows) - W pełni konfigurowalne motywy (kolory, czcionki, zawijanie słów, rozmiar tabulatorów). Obsługuje podzielony widok poziomy i pionowy. Obsługuje także śledzenie plików i wyszukiwanie wyrażeń regularnych. Bardzo szybki, prosty i ma mały rozmiar pliku wykonywalnego.
  • klogg (Windows, macOS, Linux) - utrzymany rozwidlenie glogg , jego główną funkcją jest wyszukiwanie wyrażeń regularnych. Może także oglądać pliki, umożliwia użytkownikowi oznaczanie linii i ma wbudowane poważne optymalizacje. Ale z punktu widzenia interfejsu użytkownika jest brzydki i niezgrabny.
  • LogExpert (Windows) - „Zamiennik GUI dlatail”. To naprawdę analizator plików dziennika, a nie duża przeglądarka plików, a podczas jednego testu wymagał 10 sekund i 700 MB pamięci RAM, aby załadować plik 250 MB. Ale jego zabójczymi funkcjami są narzędzie do columnizera (parsowanie dzienników w formacie CSV, JSONL itp. I wyświetlanie w formacie arkusza kalkulacyjnego) oraz wyróżnienie (wyświetlanie linii z pewnymi słowami w określonych kolorach). Obsługuje również śledzenie plików, tabulatory, pliki wielokrotne, zakładki, wyszukiwanie, wtyczki i narzędzia zewnętrzne.
  • Lister (Windows) - bardzo mały i minimalistyczny. Jest to jeden plik wykonywalny, zaledwie 500 KB, ale nadal obsługuje wyszukiwanie (z wyrażeniami regularnymi), drukowanie, tryb edytora szesnastkowego i ustawienia.
  • loxx (Windows) - Obsługuje śledzenie plików, wyróżnianie, numery linii, ogromne pliki, wyrażenia regularne, wiele plików i widoków i wiele więcej. Darmowa wersja nie może: przetwarzać wyrażeń regularnych, filtrować pliki, synchronizować znaczników czasu i zapisywać zmienione pliki.

Bezpłatne edytory:

  • Twój zwykły redaktor lub IDE. Nowoczesne edytory mogą obsługiwać zaskakująco duże pliki. W szczególności Vim (Windows, macOS, Linux), Emacs (Windows, macOS, Linux), Notepad ++ (Windows), Sublime Text (Windows, macOS, Linux) i VS Code (Windows, macOS, Linux) obsługują duże (~ 4 GB), przy założeniu, że masz pamięć RAM.
  • Edytor dużych plików (Windows) - otwiera i edytuje pliki TB +, obsługuje Unicode, zużywa mało pamięci, ma funkcje specyficzne dla XML i zawiera tryb binarny.
  • GigaEdit (Windows) - Obsługuje wyszukiwanie, statystyki postaci i dostosowywanie czcionek. Jest to jednak błędne - w przypadku dużych plików pozwala tylko na nadpisywanie znaków, a nie wstawianie ich; nie uznaje LF jako terminatora linii, tylko CRLF; i jest wolny.

Wbudowane programy (instalacja nie jest wymagana):

  • less (macOS, Linux) - Tradycyjne narzędzie pagerowe dla wiersza poleceń systemu Unix. Umożliwia przeglądanie plików tekstowych o praktycznie dowolnym rozmiarze. Można go również zainstalować w systemie Windows.
  • Notatnik (Windows) - Przyzwoity z dużymi plikami, szczególnie z wyłączonym zawijaniem słów.
  • WIĘCEJ (Windows) - dotyczy systemu WindowsMORE, a nie Uniksamore. Program konsoli, który pozwala wyświetlać plik, jeden ekran na raz.

Przeglądarki internetowe:

  • readfileonline.com - Kolejna przeglądarka dużych plików HTML5. Obsługuje wyszukiwanie.

Płatni redaktorzy:

  • 010 Editor (Windows, macOS, Linux) - Otwiera ogromne (nawet 50 GB) pliki.
  • SlickEdit (Windows, macOS, Linux) - Otwiera duże pliki.
  • UltraEdit (Windows, macOS, Linux) - Otwiera pliki większe niż 6 GB, ale aby to było praktyczne, należy zmienić konfigurację: Menu »Zaawansowane» Konfiguracja »Obsługa plików» Pliki tymczasowe »Otwórz plik bez pliku tymczasowego ...
  • EmEditor (Windows) - Ładnie obsługuje bardzo duże pliki tekstowe (oficjalnie do 248 GB, ale aż do 900 GB według jednego raportu).

60
VIM lub Emacs ... wybierz swoją truciznę, obie poradzą sobie z każdym plikiem, który na nich rzucisz. Osobiście wolę Emacsa, ale oba pokonają notatnik bez czkawki.
Mike Stone,

25
Emacs ma maksymalny rozmiar bufora, zależny od podstawowej architektury (32 lub 64 bity). Myślę, że w systemach 32-bitowych pojawia się błąd „przekroczono maksymalny rozmiar bufora” w przypadku plików większych niż 128 MB.
Rafał Dowgird

82
Właśnie wypróbowałem Notepad ++ z plikiem dziennika o wielkości 561 MB i powiedziałem, że jest za duży
barfoon

9
@Rafal Ciekawe! Wygląda na 64-bitowy, to ~ 1024 petabajtów. Powód ma związek z faktem, że emacs musi śledzić pozycje buforów (takie jak punkt)
baudtack

79
Ale bądź ostrożny, vim będzie działał tylko tak długo, jak długo dane pliki mają wystarczającą liczbę podziałów linii. Kiedyś musiałem edytować ok. Plik 150 MB bez żadnych podziałów linii i musiał uciekać się do gedit, ponieważ vim nie mógł go obsłużyć.
Benno

192

Porady i wskazówki

mniej

Dlaczego używasz edytorów, aby po prostu patrzeć na (duży) plik?

Pod * nix lub Cygwin , po prostu użyj mniej . (Jest takie słynne powiedzenie - „mniej znaczy więcej, więcej lub mniej” - ponieważ „mniej” zastąpiło wcześniejsze polecenie Uniksa „więcej”, z dodatkiem, że można przewinąć w górę.) Wyszukiwanie i nawigacja pod less jest bardzo podobne do Vim, ale nie ma pliku wymiany i mało pamięci RAM.

Istnieje mniej niż GNU portu Win32. Zobacz sekcję „mniej” powyższej odpowiedzi.

Perl

Perl jest dobry do szybkich skryptów, a jego ..operator (flip-flop zasięgu) zapewnia niezły mechanizm selekcji, aby ograniczyć rudę, przez którą trzeba przebrnąć.

Na przykład:

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

Spowoduje to wyodrębnienie wszystkiego z wiersza 1 miliona do wiersza 2 milionów i pozwoli ci ręcznie przesłać wynik w mniejszym stopniu.

Inny przykład:

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

Rozpocznie się drukowanie, gdy „wyrażenie regularne jeden” znajdzie coś, i przestanie, gdy „wyrażenie regularne dwa” znajdzie koniec interesującego bloku. Może znaleźć wiele bloków. Przesiej wyjście ...

logparser

To kolejne przydatne narzędzie, którego możesz użyć. Cytując artykuł w Wikipedii :

logparser to elastyczne narzędzie wiersza poleceń, które początkowo zostało napisane przez Gabriele Giuseppini, pracownika Microsoft, w celu zautomatyzowania testów logowania IIS. Był przeznaczony do użytku z systemem operacyjnym Windows i został dołączony do narzędzi IIS 6.0 Resource Kit Tools. Domyślne zachowanie logparsera działa jak „potok przetwarzania danych”, biorąc wyrażenie SQL w wierszu poleceń i wyprowadzając wiersze zawierające dopasowania dla wyrażenia SQL.

Microsoft opisuje Logparser jako potężne, wszechstronne narzędzie, które zapewnia uniwersalny dostęp do zapytań do danych tekstowych, takich jak pliki dziennika, pliki XML i pliki CSV, a także kluczowe źródła danych w systemie operacyjnym Windows, takie jak Dziennik zdarzeń, Rejestr, system plików i Active Directory. Wyniki zapytania wejściowego można sformatować niestandardowo w wynikowym tekście lub można je utrwalić do bardziej specjalnych celów, takich jak SQL, SYSLOG lub wykres.

Przykładowe użycie:

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%'"

Względność rozmiarów

100 MB nie jest za duże. 3 GB robi się dość duże. Pracowałem kiedyś w drukarni i poczcie, która stworzyła około 2% amerykańskiej poczty pierwszej klasy. Jeden z systemów, dla których byłem liderem technologicznym, stanowił około 15 +% przesyłek. Mieliśmy duże pliki do debugowania tu i tam.

I więcej...

Dodaj tutaj więcej narzędzi i informacji. Ta odpowiedź to wiki społeczności bez powodu! Wszyscy potrzebujemy więcej porad na temat postępowania z dużymi ilościami danych ...


8
+1, ostatnio miałem kilka naprawdę dużych plików XML (+1 gigabajt), na które musiałem spojrzeć. Korzystam z systemu Windows i zarówno vim, emacs, notepad ++, jak i kilka innych edytorów całkowicie dusiło plik do tego stopnia, że ​​mój system prawie stał się bezużyteczny podczas próby otwarcia pliku. Po chwili zdałem sobie sprawę, jak niepotrzebna była próba otwarcia pliku w edytorze, kiedy musiałem go tylko wyświetlić. Korzystając z cygwina (i sprytnej grep / less / sed-magic) z łatwością znalazłem część, która mnie interesowała i mogłem ją przeczytać bez żadnych kłopotów.
wasatz

8
nie potrzebujesz cygwina za mniej, możesz go również użyć pod Windows: gnuwin32.sourceforge.net/packages/less.htm
ChristophK

2
Ten edytor XML ma również duży komponent przeglądarki plików i zapewnia kolorowanie składni również dla dużych plików. Pliki nie są ładowane całkowicie do pamięci, więc dokument o pojemności wielu GB nie powinien stanowić problemu. Ponadto to narzędzie może również sprawdzać poprawność dużych dokumentów XML ... Moim zdaniem jedno z najlepszych podejść do pracy z dużymi danymi XML.
lichtfusion

9
OK, więc właśnie naprawiłem własny problem. lesszawijanie słów jest wolne. less -Sbez zawijania słów jest błyskawicznie szybki nawet na dużych liniach. Znowu jestem szczęśliwy!
Andy Brown,

6
Świetna odpowiedź. Chcę zauważyć, że jeśli masz zainstalowany Git dla Windows, prawdopodobnie masz także Git Bash, który obejmuje less.
tranzystor1
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.