Ho alcuni file di dimensioni> 1 GB ciascuno. Devo rimuovere gli ultimi byte dai file. Come posso farlo? Preferisco modificare il file in atto per risparmiare spazio su disco.
Sono su HP-UX.
Ho alcuni file di dimensioni> 1 GB ciascuno. Devo rimuovere gli ultimi byte dai file. Come posso farlo? Preferisco modificare il file in atto per risparmiare spazio su disco.
Sono su HP-UX.
Risposte:
Prova a usare hexedit Non l'ho provato su HP-UX ma dovrebbe funzionare. Ti consente di spostarti in una posizione in un file e troncare. Sono abbastanza sicuro che non legge l'intero file ma cerca solo nella posizione appropriata per la visualizzazione.
L'utilizzo è abbastanza semplice una volta avviato, i tasti freccia consentono di spostarsi. F1 dà aiuto. Ctrl-G si sposta in una posizione nel file (suggerimento: per spostarsi alla fine utilizzare la dimensione del file dalla riga inferiore del display). Posizionare il cursore sul primo byte che si desidera troncare, quindi premere Esc T dopo aver verificato che il troncamento sarà stato eseguito. Ctrl-x esce.
Taglia 2 kilobyte dalla fine del file:
truncate -s-2K file
Puoi usare dd per esempio:
dd if=yourfile of=outname bs=4k count=thefirstX4kb
Utilizzare uno strumento che consente di accedere alla truncate
chiamata di sistema. Puoi farlo con solo gli strumenti POSIX. Attenzione, digitato in un browser; stai particolarmente attento perché dd
è ancora più spietato degli errori rispetto al solito comando unix. 123456 è il numero di byte da conservare.
dd if=/dev/null of=/file/to/truncate seek=1 bs=123456
Una versione Perl è molto più leggibile:
perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate
Puoi usare split
o ed
, awk
o qualsiasi linguaggio di programmazione.
vim
abbia un limite di 4G (potrebbe essere sbagliato) ma non credo che lo faccia sul posto (potrebbe essere sbagliato).