如何就地编辑大文件?

如何就地编辑大文件?

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

我使用的是 HP-UX。

答案1

从文件末尾剪切 2 KB:

truncate -s-2K file

答案2

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

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

答案3

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

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

Perl 版本更具可读性:

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

答案4

您可以使用splitedawk任何编程语言。

相关内容