Tengo algunos archivos de tamaño> 1 GB cada uno. Necesito eliminar los últimos bytes de los archivos. ¿Cómo puedo hacerlo? Prefiero editar el archivo en su lugar para ahorrar espacio en disco.
Estoy en HP-UX.
Tengo algunos archivos de tamaño> 1 GB cada uno. Necesito eliminar los últimos bytes de los archivos. ¿Cómo puedo hacerlo? Prefiero editar el archivo en su lugar para ahorrar espacio en disco.
Estoy en HP-UX.
Respuestas:
Intenta usar hexedit No lo he probado en HP-UX pero debería funcionar. Le permite moverse a una ubicación en un archivo y truncar. Estoy bastante seguro de que no lee todo el archivo sino que solo busca la ubicación adecuada para su visualización.
El uso es bastante simple una vez que lo ha lanzado, las teclas de flecha le permiten moverse. F1 da ayuda. Ctrl-G se mueve a una ubicación en el archivo (pista: para mover hasta el final use el tamaño del archivo desde la fila inferior de la pantalla). Coloque el cursor en el primer byte que desea truncar y luego presione Escape T una vez que confirme que el truncamiento se habrá realizado. Ctrl-x sale.
Corte 2 kilobytes desde el final del archivo:
truncate -s-2K file
Puedes usar dd por ejemplo:
dd if=yourfile of=outname bs=4k count=thefirstX4kb
Use una herramienta que le permita acceder a la truncate
llamada del sistema. Puede hacerlo solo con las herramientas POSIX. Advertencia, escrita en un navegador; tenga especial cuidado ya que dd
es aún más implacable de errores que el comando habitual de Unix. 123456 es el número de bytes a mantener.
dd if=/dev/null of=/file/to/truncate seek=1 bs=123456
Una versión de Perl es mucho más legible:
perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate
Puede usar split
o ed
, awk
o cualquier lenguaje de programación.
vim
tiene un límite de 4G (podría estar equivocado) pero no creo que lo haga en su lugar (podría estar equivocado).