J'exécutais un programme de bash avec sa sortie redirigée vers un fichier (test.out). Le processus est mort en raison de certains problèmes (les problèmes ne sont pas importants dans ce contexte) et il me reste maintenant deux fichiers:
test.out
qui correspond à 2,1 Go, et.test.out.swp
qui fait 19 MoExiste-t-il un moyen de fusionner ces fichiers, par exemple en ajoutant le fichier d'échange à la fin du fichier d'origine?
Ou est-ce que je me trompe en voulant faire cela? Le fichier d'échange a-t-il un objectif différent de celui utilisé avec output/log?
Vim utilise des fichiers .swp comme zones de stockage pour les travaux non terminés, ce qui lui permet d’éditer des fichiers très volumineux même s’ils ne peuvent pas tenir entièrement en mémoire. C’est un héritage de l’époque où l’ordinateur RAM était très petit et où les fichiers volumineux qui n’entraient pas dans la mémoire étaient plus fréquents, mais cela n’a pas changé, et nous permet d’éditer des fichiers de plusieurs gigaoctets sans avoir à manger. tous les processus RAMdisponibles ou de mise à mort. Vim supprime le fichier .swp une fois l’édition terminée ou le quitte si le processus se termine anormalement.
Si vous avez un fichier .swp et un fichier original, vous pouvez récupérer un peu le travail perdu. Ceci est documenté ici:
http://vimdoc.sourceforge.net/htmldoc/recover.html
Pour récupérer un fichier, ouvrez simplement le fichier d'origine. vim remarquera qu’un fichier .swp est déjà associé au fichier et vous avertira et vous demandera ce que vous voulez faire. En supposant que vous ayez les privilèges requis pour écrire dans le fichier, "récupérer" devrait être l'une des options proposées.
Vous pouvez également démarrer une nouvelle instance de vim (sur un document vierge) et utiliser la commande :recover <file>
pour indiquer le fichier à récupérer.
Notez que les fichiers .swp sont principalement utilisés en tant que stockage temporaire pour vim, lui permettant d’éditer des fichiers volumineux, PAS de récupération. En tant que tel, vim n'écrit pas de journal dans le fichier et, en cas de coupure de courant lors de l'édition, le fichier .swp peut être corrompu. Heureusement, l'outil de récupération dans vim est assez tolérant pour les fichiers .swp partiellement corrompus et tente toujours de récupérer le plus grand nombre possible de modifications perdues dans le fichier. Recherchez l'existence de trois points d'interrogation: ???
dans le fichier récupéré, car ils seront insérés chaque fois qu'une corruption est trouvée dans le fichier .swp.
Une fois que vous êtes satisfait de la récupération, vous devez supprimer manuellement le fichier .swp pour vous assurer de ne pas recevoir l'avertissement lorsque vous allez éditer le fichier. Veillez à ne pas exécuter le processus de récupération une seconde fois.
Pour répondre techniquement à votre question:
cat test.out > experiment.out
cat .test.out.swp >> experiment.out
La première redirection de la commande cat
_ >
crée un nouveau fichier. La deuxième redirection de la commande cat
_ >>
est ajoutée au fichier existant.
En réalité, experiment.out
ne sera probablement pas utilisable car vous ajoutez un Apple à une orange.
Vous pouvez google réparer les fichiers: Superuser.com Comment puis-je récupérer le fichier d'origine à partir d'un fichier .swpfile? En bref:
vim -r .swp
Faites d'abord des copies de tous les fichiers!
Si cela ne fonctionne pas, j'utilise gedit
sur les deux fichiers dans des onglets séparés, puis dans un troisième onglet, collez le texte copié à partir des deux premiers onglets.