J'ai quelques fichiers de taille> 1 Go chacun. J'ai besoin de supprimer les derniers octets des fichiers. Comment puis-je le faire? Je préfère modifier le fichier en place pour économiser de l'espace disque.
Je suis sur HP-UX.
files
editors
hp-ux
large-files
Hemant
la source
la source
vim
a une limite 4G (pourrait être faux) mais je ne pense pas qu'il le fasse en place (pourrait être faux).Réponses:
Essayez d'utiliser hexedit Je ne l'ai pas essayé sur HP-UX mais cela devrait fonctionner. Il vous permet de vous déplacer vers un emplacement dans un fichier et de le tronquer. Je suis à peu près sûr qu'il ne lit pas le fichier entier mais cherche simplement l'emplacement approprié pour l'affichage.
L'utilisation est assez simple une fois que vous l'avez lancée, les touches fléchées vous permettent de vous déplacer. F1 donne de l'aide. Ctrl-G se déplace vers un emplacement dans le fichier (astuce: pour se déplacer jusqu'à la fin, utilisez la taille du fichier à partir de la ligne inférieure de l'affichage). Positionnez le curseur sur le premier octet que vous souhaitez tronquer, puis appuyez sur Echap T une fois que vous avez confirmé que la troncature aura été effectuée. Ctrl-x se ferme.
la source
Coupez 2 kilo-octets de la fin du fichier:
la source
Vous pouvez utiliser dd par exemple:
la source
Utilisez un outil qui vous donne accès à l'
truncate
appel système. Vous ne pouvez le faire qu'avec les outils POSIX. Attention, tapé dans un navigateur; soyez particulièrement prudent car ildd
est encore plus impitoyable d'erreurs que la commande unix habituelle. 123456 est le nombre d'octets à conserver.Une version Perl est beaucoup plus lisible:
la source
Vous pouvez utiliser
split
oued
,awk
ou n'importe quel langage de programmation.la source