寻找快速编辑linux中的大文件的方法

时间:2018-02-06 14:34:10

标签: linux editing

我有一个大文件,几个二进制数据,顶部有一个ASCII标头。我需要对ASCII标头进行一些小的更改。 sed完成这项工作,但由于文件太大,需要花费相当多的时间。 vi/vim也很慢。是否有任何Linux实用程序可以直接进入文件,在顶部进行更改,然后快速退出?

示例可能是标题,如下所示:

Code Rev:   3.5
Platform:   platform1
Run Date:   12/13/16
Data source:  whatever
Restart:    False
followed by a large amount of binary data ....

然后我可能需要编辑“数据源”中的错误。

1 个答案:

答案 0 :(得分:3)

如果您知道标头小于X字节,则可以使用dd。 (!)但它只有在两个字符串具有相同的长度(!)

时才有效

让我们说,标题少于4096字节

dd if=/path/to/file bs=4096 count=1 | sed 's/XXX/YYY/' | dd of=/path/to/file conv=notrunc

您也可以使用C,Python,PHP,JAVA等语言以编程方式执行此操作。想法是打开文件,读取标题,修复它,然后将其写回。