J'ai un fichier XML de taille 31 Go. J'ai besoin de trouver le nombre total de lignes dans ce fichier. Je sais que la commande wc -l
me donnera la même chose. Cependant, cela prend trop de temps pour effectuer cette opération. Existe-t-il un mécanisme plus rapide pour trouver le nombre de lignes dans un fichier volumineux?Longueur d'un fichier XML
Répondre
31 concerts est un très gros fichier texte. Je parie que cela compresserait jusqu'à environ 1,5 concerts. Je voudrais créer ces fichiers dans un format compressé pour commencer, puis vous pouvez diffuser une version décompressée du fichier via wc. Cela réduira considérablement la quantité d'E/S et de mémoire utilisée pour traiter ce fichier. gzip peut lire et écrire des flux compressés.
Mais je voudrais aussi faire les commentaires suivants:
- Les numéros de ligne ne sont pas vraiment d'information pour XML comme des espaces entre les éléments est ignoré (sauf pour le contenu mixte). Que voulez-vous vraiment savoir sur l'ensemble de données? Je parie que compter les éléments serait plus utile.
- Assurez-vous que votre fichier xml n'est pas redondant inutilement, par exemple répétez-vous les mêmes déclarations d'espace de noms partout dans le document?
- Peut-être que XML est pas la meilleure façon de représenter ce document, si elle est essayer de regarder en quelque chose comme Fast Infoset
Bonne idée sur les flux gzippés. Je serais curieux de voir l'impact sur les performances (je n'ai pas de fichier XML 31Go avec lequel jouer) –
Si tout ce dont vous avez besoin est le nombre de lignes, wc -l
sera aussi rapide que toute autre chose.
Le problème est le fichier texte de 31 Go.
Non, pas vraiment. wc
va être très bien optimisé. 31GB est beaucoup de données, et le lire pour compter les lignes va prendre un certain temps, peu importe le programme que vous utilisez.
En outre, cette question n'est pas vraiment appropriée pour Stack Overflow, car il ne s'agit pas de programmation du tout.
Vous pouvez toujours avoir une solution de programmation –
Si la précision n'est pas un problème, recherchez la longueur de ligne moyenne et divisez la taille du fichier par cela. De cette façon, vous pouvez obtenir une approximation très rapide. (Assurez-vous de prendre en compte le codage de caractères utilisé)
Ceci est au-delà du point où le code devrait être refactorisé pour éviter complètement votre problème. Une façon de faire est de placer toutes les données dans le fichier dans une base de données de magasin de tuple à la place. Apache couchDB et Intersystems Cache sont deux systèmes que vous pouvez utiliser pour cela, et qui seront bien mieux optimisés pour le type de données que vous traitez.
Si vous êtes vraiment bloqué avec le fichier xml, une autre option consiste à compter toutes les lignes à l'avance et à mettre en cache cette valeur. Chaque fois qu'une ligne est ajoutée ou supprimée du fichier, vous pouvez en ajouter ou en soustraire une au fichier. Assurez-vous également d'utiliser un entier de 64 bits car il peut y avoir plus de 2^32 lignes.
Est-ce que compter les lignes n'est pas vraiment incertain puisque dans XML newline est simplement une chose cosmétique? Il serait probablement préférable de compter le nombre d'occurrences d'une étiquette spécifique.
- 1. Append déclaration fichier XML
- 2. RE: Big fichier XML
- 3. Recherche de la longueur d'une force dans un fichier nginx.conf
- 4. Limitation de longueur de chaîne de fichier de propriété (JAVA)
- 5. Utiliser MPlayer pour déterminer la longueur du fichier audio/vidéo
- 6. Affichage de la longueur des séquences individuelles dans le fichier
- 7. Nodesets Longueur
- 8. Partage XML d'un fichier volumineux
- 9. Validation d'un énorme fichier XML
- 10. Création d'un fichier XML dynamique
- 11. xml fichier dans le savon
- 12. Fichier de vue XML CakePHP
- 13. Comment générer un fichier XML
- 14. Erreur dans mon fichier XML?
- 15. fichier XML de charge QTP
- 16. Comment analyser un fichier XML
- 17. Big fichier XML et OutOfMemoryError
- 18. Javascript manipulant un fichier XML
- 19. Fichier de langage XML C#
- 20. comment accéder au fichier xml?
- 21. Longueur maximale de [NSXMLNode stringValue]
- 22. HttpHandler retournant zéro longueur octet []
- 23. Ajouter un attribut XML Namespace à un fichier XML tiers?
- 24. Ecrivez un fichier XML avec LINQ to XML
- 25. Compilation d'un fichier XML dans un fichier binaire
- 26. Modifier un fichier XML dans un fichier jar avec Java
- 27. Fichier Web Feature et lecture de fichier XML
- 28. Longueur AJAX Limitations
- 29. .htaccess à toute longueur
- 30. CString longueur maximale
@Turing complet: Il est pas nécessairement la faute de l'OP, peut-être qu'il travaille sur un système existant ou quelque chose de similaire. La question est valide et ne mérite pas un -1 – marcgg