Επεξεργαστής κειμένου για το άνοιγμα μεγάλων (γιγάντιων, τεράστιων, μεγάλων) αρχείων κειμένου

Εννοώ 100+ ΜΒ- τέτοια αρχεία κειμένου μπορούν να φτάσουν στα όρια των επεξεργαστών.

Πρέπει να κοιτάξω ένα μεγάλο αρχείο XML, αλλά δεν μπορώ αν ο επεξεργαστής είναι προβληματικός.

Καμία πρόταση;

Λύση

VS Code (Windows, macOS, Linux) - Δωρεάν και ανοικτού κώδικα με ωραίο γραφικό περιβάλλον. Επεξεργάστηκε ένα αρχείο JSON 3,6 GB, το οποίο φορτώθηκε σε ένα λεπτό. Πρέπει να έχετε αρκετή μνήμη RAM για να φορτώσετε τα αρχεία.

Δωρεάν προγράμματα προβολής μόνο για ανάγνωση:

  • glogg (Windows, macOS, Linux) - Επιβεβαιώθηκε ότι μπορεί να χειριστεί αρχεία πολλών GB. Το κύριο χαρακτηριστικό του είναι η αναζήτηση με κανονικές εκφράσεις. Διαθέτει καρτέλες, διαβάζει αρχεία απευθείας από το δίσκο, μπορεί να παρακολουθεί/ακολουθεί αρχεία και επιτρέπει στο χρήστη να επισημαίνει γραμμές.
  • LogExpert (Windows) - "A GUI replacement for tail." Υποστηρίζει παρακολούθηση αρχείων, αναζήτηση, φιλτράρισμα, διαμορφώσιμη επισήμανση, plugins και εξωτερικά εργαλεία.
  • Large Text File Viewer (Windows) - Μινιμαλιστικό και με πολύ μικρό μέγεθος εκτελέσιμου αρχείου. Υποστηρίζει προβολή διαχωρισμού, προσαρμογή του θέματος κειμένου, αναζήτηση με regex και ακολουθία αρχείων.
  • Lister (Windows) - Ακόμα πιο μικρό και μινιμαλιστικό. Είναι ένα εκτελέσιμο αρχείο, μόλις 500 KB, αλλά εξακολουθεί να υποστηρίζει αναζήτηση (με regexes), εκτύπωση, λειτουργία επεξεργαστή δεκαεξαδικών και ρυθμίσεις.

Δωρεάν επεξεργαστές:

  • Vim και Emacs (Windows, macOS, Linux) - Κλασικοί επεξεργαστές Unix. Μεγάλη καμπύλη εκμάθησης, αλλά βάναυσα αποδοτικά. Διαθέτουν ρυθμίσεις που μπορούν να ρυθμιστούν για να γίνουν ακόμα πιο γρήγοροι.
  • Επεξεργαστής μεγάλων αρχείων (Windows) - Ανοίγει και επεξεργάζεται αρχεία TB+, υποστηρίζει Unicode, χρησιμοποιεί λίγη μνήμη, έχει ειδικά χαρακτηριστικά για XML και περιλαμβάνει δυαδική λειτουργία.
  • HxD (Windows) - Επεξεργαστής δεκαεξαδικών, όχι επεξεργαστής κειμένου, αλλά είναι εκπληκτικά γρήγορος και χρήσιμος.
  • GigaEdit (Windows) - Υποστηρίζει αναζήτηση, στατιστικά στοιχεία χαρακτήρων και προσαρμογή γραμματοσειρών. Αλλά είναι προβληματικό - με μεγάλα αρχεία, επιτρέπει μόνο την αντικατάσταση χαρακτήρων, όχι την εισαγωγή τους- δεν σέβεται το LF ως τερματικό γραμμής, μόνο το CRLF- και είναι αργό.

Ενσωματωμένα προγράμματα (δεν απαιτείται εγκατάσταση):

  • less (macOS, Linux) - Το παραδοσιακό εργαλείο σελίδας της γραμμής εντολών του Unix. Σας επιτρέπει να προβάλετε αρχεία κειμένου πρακτικά οποιουδήποτε μεγέθους. Μπορεί να εγκατασταθεί και στα Windows.
  • Notepad (Windows) - Αξιοπρεπές με μεγάλα αρχεία, ειδικά με απενεργοποιημένο το word wrap.
  • MORE (Windows) - Αυτό αναφέρεται στο MORE των Windows, όχι στο more του Unix. Ένα πρόγραμμα κονσόλας που σας επιτρέπει να προβάλετε ένα αρχείο, μία οθόνη κάθε φορά.

Πρόγραμμα προβολής στο διαδίκτυο:

  • htmlpen.com - Μπορεί να ανοίξει και να επισημάνει συντακτικά τα αρχεία TB+. Επιτρέπει την επεξεργασία, εκτός από πολύ μεγάλα αρχεία. Υποστηρίζει αναζήτηση, regexes και εξαγωγή.
  • readfileonline.com - Ένας άλλος προβολέας μεγάλων αρχείων HTML5. Υποστηρίζει αναζήτηση.

Επί πληρωμή επεξεργαστές:

  • 010 Editor (Windows, macOS, Linux) - Ανοίγει γιγαντιαία αρχεία (έως και 50 GB).
  • SlickEdit (Windows, macOS, Linux) - Ανοίγει μεγάλα αρχεία.
  • UltraEdit (Windows, macOS, Linux) - Ανοίγει αρχεία άνω των 6 GB, αλλά για να είναι πρακτικό, πρέπει να αλλάξει η ρύθμιση παραμέτρων: Μενού » Για προχωρημένους » Διαμόρφωση » Χειρισμός αρχείων » Προσωρινά αρχεία » Άνοιγμα αρχείου χωρίς προσωρινό αρχείο...
  • EmEditor (Windows) - Χειρίζεται όμορφα πολύ μεγάλα αρχεία κειμένου (επίσημα μέχρι 248 GB, αλλά σύμφωνα με μια αναφορά μέχρι και 900 GB).

Και τέλος, δοκιμάσατε να ανοίξετε το μεγάλο αρχείο με τον κανονικό σας επεξεργαστή; Ορισμένοι επεξεργαστές μπορούν πράγματι να χειριστούν αρκετά μεγάλα αρχεία. Συγκεκριμένα, το Notepad++ (Windows) και το Sublime Text (Windows, macOS, Linux) υποστηρίζουν αρχεία της τάξης των 2 GB.

Σχόλια (61)

Συμβουλές και κόλπα

λιγότερο

Γιατί χρησιμοποιείτε επεξεργαστές για να κοιτάξετε απλώς ένα (μεγάλο) αρχείο;

Στο *nix ή στο Cygwin, χρησιμοποιήστε απλά το less. (Υπάρχει ένα διάσημο ρητό - "less is more, more or less" - επειδή η "less" αντικατέστησε την παλαιότερη εντολή του Unix "more", με την προσθήκη ότι μπορούσατε να κάνετε κύλιση προς τα πίσω). Η αναζήτηση και η πλοήγηση κάτω από το less μοιάζει πολύ με το Vim, αλλά δεν υπάρχει αρχείο swap και χρησιμοποιείται ελάχιστη μνήμη RAM.

Υπάρχει μια μεταφορά Win32 του GNU less. Δείτε την ενότητα "less" της παραπάνω απάντησης.

Perl

Η Perl είναι καλή για γρήγορα σενάρια, και ο τελεστής .. (range 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

Αυτό είναι ένα άλλο χρήσιμο εργαλείο που μπορείτε να χρησιμοποιήσετε. Για να παραθέσω το άρθρο της Wikipedia:

logparser είναι ένα ευέλικτο βοηθητικό πρόγραμμα γραμμής εντολών που γράφτηκε αρχικά από τον Gabriele Giuseppini, έναν υπάλληλο της Microsoft, για την αυτοματοποίηση των δοκιμών καταγραφής του IIS. Προοριζόταν για χρήση με το λειτουργικό σύστημα Windows και περιλαμβανόταν στα εργαλεία του IIS 6.0 Resource Kit Tools. Η προεπιλεγμένη συμπεριφορά του 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 MB δεν είναι πολύ μεγάλα. Τα 3 GB γίνονται αρκετά μεγάλα. Δούλευα σε μια εγκατάσταση εκτύπωσης και ταχυδρομείου που δημιουργούσε περίπου το 2% της πρώτης κατηγορίας αλληλογραφίας των ΗΠΑ. Ένα από τα συστήματα για τα οποία ήμουν ο τεχνικός επικεφαλής αντιπροσώπευε περίπου το 15+% των τεμαχίων αλληλογραφίας. Είχαμε μερικά μεγάλα αρχεία να διορθώσουμε εδώ και εκεί.

And more...

Μη διστάσετε να προσθέσετε περισσότερα εργαλεία και πληροφορίες εδώ. Αυτή η απάντηση είναι wiki της κοινότητας για κάποιο λόγο! Όλοι μας χρειαζόμαστε περισσότερες συμβουλές για την αντιμετώπιση μεγάλου όγκου δεδομένων...

Σχόλια (12)