如何就地编辑大文件?

Hem*_*ant 18 editors large-files hp-ux files

我有几个文件大小 > 1 GB。我需要从文件中删除最后几个字节。我该怎么做?我更喜欢就地编辑文件以节省磁盘空间。

我在 HP-UX 上。

Mac*_*tka 14

从文件末尾削减 2 KB:

truncate -s-2K file
Run Code Online (Sandbox Code Playgroud)


Ric*_*chm 10

尝试使用hexedit我还没有在 HP-UX 上尝试过,但它应该可以工作。它允许您移动到文件中的某个位置并进行截断。我很确定它不会读取整个文件,而只是寻找适当的位置进行显示。

一旦您启动它,使用就相当简单,箭头键允许您四处移动。F1 提供帮助。Ctrl-G 移动到文件中的某个位置(提示:从显示的底行移动到最后使用文件的大小)。将光标放在要截断的第一个字节上,然后在确认截断完成后按 Escape T。Ctrl-x 退出。


Gil*_*il' 7

使用可让您访问truncate系统调用的工具。您只能使用 POSIX 工具来完成。警告,在浏览器中输入;要特别小心,因为dd它比通常的 unix 命令更不能容忍错误。123456 是要保留的字节数。

dd if=/dev/null of=/file/to/truncate seek=1 bs=123456
Run Code Online (Sandbox Code Playgroud)

Perl 版本更具可读性:

perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate
Run Code Online (Sandbox Code Playgroud)


max*_*zig 6

例如,您可以使用 dd:

dd if=yourfile of=outname bs=4k count=thefirstX4kb
Run Code Online (Sandbox Code Playgroud)