Vous ne le feriez pas
Même un fan de Tolkien ne veut rien de 82,7 Go. Vous ne voulez que certains éléments de cela; vous le saurez quand vous le verrez.
Et même envisager un outil qui analyse l'ensemble du fichier est une perte de temps, littéralement; cela va passer 15 minutes à lire le fichier en supposant 100 Mo / s. Beaucoup plus lent s'il fait une analyse de toute complexité.
Le terminal est votre ami
La bouée de sauvetage ici est que OS X est construit sur Unix. C'était une grande partie de l'achat par Apple de NeXT et du retour de Steve Jobs. Cela signifie que vous pouvez utiliser toute la suite d'outils Unix, qui sont extrêmement bien rodés et très bien pris en charge ici.
Il existe des dizaines de façons de le faire sans perl, mais comme perl est intégré à MacOS et est infiniment extensible, je préfère commencer par là (plutôt que de le faire dans un outil plus simple, je veux améliorer quelque peu la requête, appuyez sur le bouton limites de cet outil, et doivent le recréer dans un autre outil). Donc quelque chose comme ça dans un fichier appelé, dites "xx":
$ len = -s "filename.log"; # variable devient la longueur du fichier
open ($ IN, "<", "filename.log");
chercher ($ IN, $ len - 10_000_000, 0); # perl autorise _ en nombre pour la lisibilité
while (< $ IN>) {# <> lit une ligne. La variable par défaut est une métavariable $ _
impression; # sans argument, la valeur par défaut est la métavariable $ _
}
Cela ne lira pas tout le fichier, recherchez simplement l'emplacement spécifié (10 Mo à partir de la fin), puis lisez et imprimez tout jusqu'à la fin. Il l'imprimera simplement à l'écran, donc pour l'envoyer dans le fichier, faites ceci lorsque vous l'appelez:
perl xx > tailfile.txt
Vous avez maintenant un fichier tailfile.txt de 10 Mo que vous pouvez ouvrir avec autre chose.
Il existe des moyens plus simples de faire exactement cela , mais supposons que vous réalisiez "Attendez, je veux faire plus. Je ne veux que des erreurs et des avertissements." Vous changez donc la commande d'impression en
imprimer si / erreur / i ou / warning / i;# // correspond au texte, la valeur par défaut est $ _
Cela aussi peut être accompli dans des outils plus simples si vous passez suffisamment de temps à parcourir les documents.Mais alors, vous décidez que vous devez voir les trois lignes après l'erreur.Juste comme ça ... vous avez dépassé les outils les plus simples, mais c'est trivial en Perl.Vous pouvez continuer à caler Perl pour toujours.Il y a un langage de programmation complet là-dedans.Orienté objet et tout.