如何在适当位置编辑大文件?


18

我有一些文件大小每个> 1 GB。我需要从文件中删除最后几个字节。我该怎么做?我更喜欢在适当位置编辑文件以节省磁盘空间。

我正在使用HP-UX。


我认为vim有4G限制(可能是错误的),但我认为它没有就位(可能是错误的)。
xenoterracide

1
@xenoterracide:我没有VIM这里:-(和VI给出了“tmp文件过大”的错误。
与Hemant

1
@Hernant:该消息告诉您所有有关就地编辑的知识:vi正在尝试将其复制到/ tmp上进行工作。我认为vim会做同样的事情,并且它确实喜欢在同一目录中创建备份。
David Thornley,2010年

Answers:


10

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

一旦启动,用法就非常简单,使用箭头键可以四处移动。F1提供帮助。Ctrl-G移至文件中的某个位置(提示:移至末尾,使用显示屏底部的文件大小)。将光标放在要截断的第一个字节上,然后在确认截断完成后按EscapeT。Ctrl-x退出。



6

您可以使用dd例如:

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

1
感谢您的答复。我更喜欢在适当位置编辑文件以节省磁盘空间。如果没有帮助,我将使用dd :-)。
Hemant 2010年

6

使用可让您访问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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.