Existe-t-il des éditeurs qui peuvent modifier des fichiers texte de plusieurs gigaoctets, peut-être en ne chargeant que de petites portions en mémoire à la fois? Il ne semble pas que Vim puisse le gérer = (
Existe-t-il des éditeurs qui peuvent modifier des fichiers texte de plusieurs gigaoctets, peut-être en ne chargeant que de petites portions en mémoire à la fois? Il ne semble pas que Vim puisse le gérer = (
Réponses:
Si vous êtes sur * nix (et en supposant que vous devez modifier une partie seulement du fichier (et rarement)), vous pouvez diviser les fichiers ( à l' aide de la split
commande), les modifier individuellement ( en utilisant awk
, sed
ou quelque chose de similaire) et les concaténer après que vous sont fait.
cat file2 file3 >> file1
Ctrl-C arrêtera le chargement du fichier. Si le fichier est assez petit, vous avez peut-être eu de la chance d'avoir chargé tout le contenu et de supprimer toutes les étapes de post-chargement. Vérifiez que tout le fichier a été chargé lors de l'utilisation de cette astuce.
Vim peut très bien gérer les fichiers volumineux. Je viens d'éditer un fichier de 3,4 Go, de supprimer des lignes, etc. Trois choses à garder à l'esprit:
:115355
saisie vous amènera directement à la ligne 115355, qui est beaucoup plus rapide dans ces gros fichiers. Vim semble commencer à analyser depuis le début à chaque fois qu'il charge un tampon de lignes, et maintenir la touche Ctrl-F enfoncée pour parcourir le fichier semble devenir très lent vers la fin.Remarque - Si votre instance Vim est en lecture seule parce que vous appuyez sur Ctrl-C, il est possible que Vim n'ait pas chargé le fichier entier dans le tampon. Si cela se produit, son enregistrement ne sauvegardera que ce qui se trouve dans la mémoire tampon, pas le fichier entier . Vous pouvez vérifier rapidement avec un G
pour passer à la fin pour vous assurer que toutes les lignes de votre fichier sont présentes.
Ce sont peut-être des plugins qui le font s'étouffer. (coloration syntaxique, plis, etc.)
Vous pouvez exécuter vim sans plugins.
vim -u "NONE" hugefile.log
C'est minimaliste mais cela vous donnera au moins les mouvements de vi auxquels vous êtes habitué.
syntax off
en est une autre évidente. Taillez votre installation et trouvez ce dont vous avez besoin. Vous découvrirez de quoi il est capable et si vous devez accomplir une tâche par d'autres moyens.
Une légère amélioration par rapport à la réponse donnée par @Al pachio avec la solution split + vim, vous pouvez lire les fichiers avec un glob, en utilisant efficacement des morceaux de fichiers comme tampon, par exemple
$ split -l 5000 myBigFile
xaa
xab
xac
...
$ vim xa*
#edit the files
:nw #skip forward and write
:n! #skip forward and don't save
:Nw #skip back and write
:N! #skip back and don't save
Vous voudrez peut-être consulter ce plugin VIM qui désactive certaines fonctionnalités de vim dans l'intérêt de la vitesse lors du chargement de fichiers volumineux.
J'ai essayé de le faire, principalement avec des fichiers d'environ 1 Go lorsque je devais apporter de petites modifications à un vidage SQL. Je suis sous Windows, ce qui en fait une douleur majeure. C'est vraiment difficile.
La question évidente est "pourquoi en avez-vous besoin?" Je peux vous dire par expérience d'avoir essayé cela plus d'une fois, vous voulez probablement vraiment essayer de trouver un autre moyen.
Alors, comment faites-vous cela? Il y a plusieurs façons de procéder. Parfois, je peux obtenir vim ou nano pour ouvrir le fichier et je peux les utiliser. C'est une douleur vraiment difficile, mais cela fonctionne.
Lorsque cela ne fonctionne pas (comme dans votre cas), vous n'avez que quelques options. Vous pouvez écrire un petit programme pour apporter les modifications dont vous avez besoin (par exemple, rechercher et remplacer). Vous pouvez utiliser un programme en ligne de commande capable de le faire (peut-être que cela pourrait être accompli avec sed / awk / grep / etc?)
Si cela ne fonctionne pas, vous pouvez toujours diviser le fichier en morceaux (quelque chose comme split étant le choix évident, mais vous pouvez utiliser head / tail pour obtenir la partie que vous voulez), puis éditer la ou les parties qui en ont besoin, et recombinez plus tard.
Croyez-moi cependant, essayez de trouver un autre moyen.
Je pense qu'il est assez courant pour les éditeurs hexadécimaux de gérer des fichiers volumineux. Sous Windows, j'utilise HxD , qui prétend gérer des fichiers jusqu'à 8 EB (8 milliards de gigaoctets).
hexedit
J'utilise vim 7.3.3 sur Win7 x64 avec le plugin LargeFile de Charles Campbell pour gérer des fichiers texte brut de plusieurs gigaoctets. Cela fonctionne vraiment bien.
J'espère que vous venez bien.
Wow, je n'ai jamais réussi à faire étouffer vim, même avec un Go ou deux. J'ai entendu dire qu'UltraEdit (sur Windows) et BBEdit (sur Mac) sont encore plus adaptés pour des fichiers encore plus volumineux, mais je n'ai aucune expérience personnelle.
Dans le passé, j'ai ouvert un fichier de 3 gig avec cet outil http://csved.sjfrancke.nl/
Personnellement, j'aime UltraEdit . Voici leur petit spiel sur les gros fichiers .
La seule chose que j'ai pu utiliser pour quelque chose comme ça est mon éditeur hexadécimal Mac préféré, 0XED. Cependant, c'était avec des fichiers que je considérais comme volumineux à des dizaines de mégaoctets. Je ne sais pas jusqu'où cela ira. Je suis à peu près sûr qu'il ne charge que des parties du fichier en mémoire à la fois.