Non lo faresti
Anche un fan di Tolkien non vuole 82,7 GB di nulla. Vuoi solo alcuni pezzi da quello; lo saprai quando lo vedrai.
E anche solo contemplare uno strumento che analizzi l'intero file è letteralmente una perdita di tempo; impiegheranno 15 minuti a leggere il file assumendo 100 MB / sec. Molto più lento se esegue analisi di qualsiasi complessità.
Terminal è tuo amico
Il salvavita qui è che OS X è costruito su Unix. Questa è stata una parte importante dell'acquisto di NeXT da parte di Apple e del ritorno di Steve Jobs. Ciò significa che puoi utilizzare l'intera suite di strumenti Unix, che sono estremamente ben rifiniti e molto ben supportati qui.
Ci sono dozzine di modi per farlo senza perl, ma poiché perl è integrato in MacOS ed è infinitamente estensibile, preferisco iniziare da lì (piuttosto che farlo in uno strumento più semplice, voglio migliorare un po 'la query, premi il limiti di quello strumento e doverlo ricreare in uno strumento diverso). Quindi qualcosa di simile in un file chiamato, dì "xx":
$ len = -s "nomefile.log"; # variabile diventa la lunghezza del file
open ($ IN, "<", "filename.log");
cerca ($ IN, $ len - 10_000_000, 0); # perl consente _ in numeri per la leggibilità
while (< $ IN>) {# <> legge una riga. La variabile predefinita è metavariabile $ _
Stampa; # senza argomenti, il valore predefinito è metavariabile $ _
}
Questo non leggerà l'intero file, cercherà semplicemente nella posizione specificata (10 MB dalla fine), quindi leggerà e stamperà tutto fino alla fine. Lo stamperà semplicemente sullo schermo, quindi per inviarlo al file, fallo quando lo chiami:
perl xx > tailfile.txt
Ora hai un tailfile.txt da 10 MB che puoi aprire con qualcos'altro.
Ci sono modi più semplici per fare proprio questo , ma supponi di realizzare "Aspetta, voglio fare di più. Voglio solo errori e avvisi". Quindi modifichi il comando di stampa in
print if / error / i o / warning / i;# // corrisponde al testo, il valore predefinito è $ _
Anche questo può essere ottenuto con strumenti più semplici se passi abbastanza tempo a fare il rooting attraverso i documenti.Ma poi, decidi che devi vedere le tre righe dopo l'errore.Proprio così ... hai superato gli strumenti più semplici, ma questo è banale in Perl.Puoi continuare a shimming Perl praticamente per sempre.C'è un linguaggio di programmazione completo lì dentro.Orientato agli oggetti e tutto.