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.
Intente 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, solo busca la ubicación adecuada para mostrarlo.
El uso es bastante simple una vez que lo ha iniciado, las teclas de flecha le permiten moverse. F1 da ayuda. Ctrl-G se mueve a una ubicación en el archivo (pista: para mover al final, use el tamaño del archivo de 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 se habrá truncado. Ctrl-x sale.
Corta 2 kilobytes desde el final del archivo:
truncate -s-2K file
Puede usar dd por ejemplo:
dd if=yourfile of=outname bs=4k count=thefirstX4kb
Utilice una herramienta que le dé acceso a la llamada al sistema truncate
. Puede hacerlo solo con herramientas POSIX. Advertencia, escrito en un navegador; tenga especial cuidado ya que dd
es aún más implacable con los errores que el comando habitual de Unix. 123456 es el número de bytes que se deben conservar.
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.