ti-enxame.com

Como posso editar um arquivo grande no local?

Tenho alguns arquivos com tamanho> 1 GB cada. Preciso remover os últimos bytes dos arquivos. Como eu posso fazer isso? Eu prefiro editar o arquivo no local para economizar espaço em disco.

Estou no HP-UX.

18
Hemant

Tente usar hexedit Não tentei no HP-UX, mas deve funcionar. Ele permite que você vá para um local em um arquivo e trunque. Tenho certeza de que ele não lê todo o arquivo, mas apenas busca o local apropriado para exibição.

O uso é bastante simples, uma vez iniciado, as teclas de seta permitem que você se mova. F1 dá ajuda. Ctrl-G move para um local no arquivo (dica: para mover para o final, use o tamanho do arquivo da linha inferior da tela). Posicione o cursor no primeiro byte que deseja truncar e pressione Escape T assim que confirmar que o truncamento foi feito. Ctrl-x sai.

10
Richm

Corte 2 kilobytes do final do arquivo:

truncate -s-2K file
14
Maciej Piechotka

Você pode usar o dd, por exemplo:

dd if=yourfile of=outname bs=4k count=thefirstX4kb
6
maxschlepzig

Use uma ferramenta que dá acesso à chamada de sistema truncate. Você pode fazer isso apenas com ferramentas POSIX. Aviso, digitado em um navegador; seja especialmente cuidadoso porque dd é ainda mais implacável com os erros do que o comando unix normal. 123456 é o número de bytes a serem mantidos.

dd if=/dev/null of=/file/to/truncate seek=1 bs=123456

Uma versão Perl é muito mais legível:

Perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate
6

Você pode usar split ou ed, awk ou qualquer linguagem de programação.

1
Mircea Vutcovici